extract movement component, update only when need