renamed freak to functional