allow strings and check for func already set to run