I think this should move to some place more general, to base or to tools (in follow-up PR)