Player interaction refactoring & resharpering