created a MoveProvider interface and an initial implementation