design principles assignment