improve move behavior