player movement logic over