move exiting classes in astM to factories