support paths as functions