Technically works, but it's not clean enough. Time to thoroughly rewrite the screen movement