allowing deferred functions
more examples