overhaul for functional idioms