Is this generic enough to go into the API module?