Complete API redesign (part 3.6)