monmove.cpp refactor