don't produce empty functions