A lot of design fixes