function defs
fix merge
mark is stupid