Changes to the design and slight changes to API names