diff --git a/Garage/Garage.csproj b/Garage/Garage.csproj
new file mode 100644
index 00000000..23df6047
--- /dev/null
+++ b/Garage/Garage.csproj
@@ -0,0 +1,8 @@
+
+
+
+ Exe
+ netcoreapp2.1
+
+
+
diff --git a/Garage/Program.cs b/Garage/Program.cs
new file mode 100644
index 00000000..75859827
--- /dev/null
+++ b/Garage/Program.cs
@@ -0,0 +1,106 @@
+using System;
+
+
+public class Program
+{
+
+ public static void Main()
+ {
+ // instantiating a new instance of person, and passing names to the constructor;
+ Person Jill = new Person("Jill");
+ Person Chris = new Person("Chris");
+ Person Rebecca = new Person("Rebecca");
+ Person Barry = new Person("Barry");
+
+ // instantiating a new instance of car, and passing colors to the constructor;
+ Car blueCar = new Car("blue");
+ Car redCar = new Car("red");
+ Car greenCar = new Car("green");
+ Car whiteCar = new Car("white");
+
+ //Assigning Persons names to cars
+ blueCar.Name = Jill.Name;
+ redCar.Name = Barry.Name;
+ greenCar.Name = Chris.Name;
+ whiteCar.Name = Rebecca.Name;
+
+ // instantiating a new instance of Garage class, and passing in a size of 4 to the constructor;
+ Garage smallGarage = new Garage(4);
+
+ // calling a method Parkcar of the smallGarage instance, with inputs of car color and parking space
+ smallGarage.ParkCar(blueCar, 0);
+ smallGarage.ParkCar(redCar, 1);
+ smallGarage.ParkCar(greenCar, 2);
+ smallGarage.ParkCar(whiteCar, 3);
+
+ // printint out the cars attribute of the small garage
+ Console.WriteLine(smallGarage.Cars);
+ }
+}
+
+class Car
+{
+ // once the color is set i cant change it, outisde of this class
+ public string Color {get; private set;}
+
+ // Name can be set outside of class
+ public string Name{get; set;}
+
+ // Car constructor
+ public Car(String color)
+ {
+ this.Color = color;
+ }
+}
+
+class Person
+{
+ //attribute for persons name
+ public string Name { get; private set;}
+
+ //Person constructor
+ public Person(string name){
+ this.Name = name;
+ }
+}
+
+class Garage
+{
+ // creates array of cars so they can be parked in the for loop down below
+ public Car[] cars;
+
+ // constructor , int of initial size
+ public Garage(int initialSize)
+ {
+ // setting the size of this garage
+ Size = initialSize;
+ // instantiating an array of Cars, of size initialsize
+ this.cars = new Car[initialSize];
+ }
+
+ //attribute , private for number of slots in the garage.
+ public int Size { get; private set; }
+
+ // a method that adds a car to the spot in the cars array
+ public void ParkCar (Car car, int spot)
+ {
+ // what if there is a car already in the spot?
+ // what if the spot passed in is outside the array?
+ cars[spot] = car;
+ }
+ public string Cars {
+ get {
+ String carsString = "";
+ //parks cars in spot
+ for (int i = 0; i < cars.Length; i++)
+ {
+ if (cars[i] != null) {
+ carsString += String.Format("{2}'s {0} car is in spot {1}.", cars[i].Color, i, cars[i].Name);
+ carsString += "\n";
+ }
+ }
+ return carsString;
+ }
+ }
+}
+
diff --git a/Gradebook/Gradebook.csproj b/Gradebook/Gradebook.csproj
new file mode 100644
index 00000000..23df6047
--- /dev/null
+++ b/Gradebook/Gradebook.csproj
@@ -0,0 +1,8 @@
+
+
+
+ Exe
+ netcoreapp2.1
+
+
+
diff --git a/Gradebook/Program.cs b/Gradebook/Program.cs
new file mode 100644
index 00000000..e99c9c1d
--- /dev/null
+++ b/Gradebook/Program.cs
@@ -0,0 +1,74 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace Gradebook
+{
+ class Program
+ {
+ public static void Main()
+ {
+ Gradebook book = new Gradebook();
+ book.run();
+ }
+ }
+
+ //Creates dictionary with name as key and a list of grades as values.
+ class book{
+ Dictionary grades = new Dictionary();
+ }
+
+ class Gradebook
+ {
+
+ public void run(){
+ Gradebook.getUserInput(new Dictionary>());
+ }
+
+ public static void getUserInput(Dictionary> grades){
+ string status = "y";
+
+ //promts user to add name that is added as key in dictionary. Then
+ while (status != "n" && status != "no")
+ {
+ //prompts user to add name
+ Console.WriteLine("Please enter student name:");
+ string name = Console.ReadLine();
+ //runs loop to ask user for grades
+ List gradeList = Value.Add();
+ //adds name and list of grades to dictionary
+ grades.Add(name,gradeList);
+ //asks user if they want to add another student thus repeating this while loop.
+ Console.WriteLine("Would you like to enter a new student?(Y/N)");
+ status = Console.ReadLine().ToLower();
+ }
+ //Writes each sudents Name, grade average, max grade, and min grade.
+ foreach (var key in grades.Keys)
+ {
+ Console.WriteLine("Name: " + key);
+ Console.WriteLine("Average: " +grades[key].Average());
+ Console.WriteLine("Max: " + grades[key].Max());
+ Console.WriteLine("Minimum: " + grades[key].Min());
+ }
+ }
+ }
+ class Value
+ {
+ //promts user to add grade and if they want to keep adding grades. Then returns the grades.
+ public static List Add()
+ {
+ var grades = new List();
+ string keepAdding = "y";
+ while (keepAdding != "n"&&keepAdding != "no")
+ {
+ //prompts user for grade then adds input to list
+ Console.WriteLine("Please enter a grade:");
+ grades.Add(Convert.ToInt16(Console.ReadLine()));
+ //asks user if they want to keep adding grades
+ Console.WriteLine("Keep adding grades?(Y/N)");
+ keepAdding = Console.ReadLine().ToLower();
+ }
+ return grades;
+ }
+ }
+}