more optimize movement