Nearly Final Solution - Working solution