moved functionality out of move class