movement implemented