cleanup, do not expose low-level detail-s in high-level code, do it where it belongs in the low-level