I would like to avoid it, but maybe downstream crates need to hook into specific parts of penguin, which should probably be done via callbacks.