fixed moving around + some more abstraction in classes