lots of game element implementation and things