further improvements to flattener