api cleanup and surface area reduction thanks to (</\>) combinator