move to catch.hpp for testing