Overhaul + API-ified!