Final Working Solution