Player class abstraction + junk cleanup