allow otherwise to take a function