Base class refactoring, basic movement logic