added deferred struct