movegen restructured