refactor availible move