Almost working completely