added game observer, tidy up