add move method, refactor data provider