Added strafing, refactored a lot of code.