added abstract method Move