// handle photos from certain users, photos with a specific tag, etc. interface AlbumWidget { } // interface Photo { User getOwner(); List getTags(); int getRating(); void addTag(); void removeTag(); } interface PhotoWidget { } // functionality for a user interface User { List getPhotos(); List getPrivatePhotos(); List getPublicPhotos(); List getPhotosByTag(String tag); List getDevices(); //Possibly? void addPhoto(); void removePhoto(); void addDevice(); void removeDevice(); } // Handles the device, if we are going to do that. interface Device { String getMacAddress(); String getOperatingSystem(); } interface UserWidget { }