hopefully a final grammar
simplify mocks for unit->unit functions
merge