Factor out defer.hpp