Complete API overhaul