core: making throw and rethrow