Complete API redesign (part 3.5)