anything can take a resource or param