Still needs debugging. this is how it is supposed to look.