ENH: Major overhaul