refactor complete, physics broken