added setup (before) and teardown (after) delegates