allow strings and functions