function-like define