Cleanup: move wrapper functions to separate module