better movement handling