Added better movement, collision and input