added priovate method _onMove