Many design fixes