removed control "if" - first argument could be obj,fn or even array