Updated finished version