Added all code up untill now