basic gameplay mostly done