implement five moves