* added (horrible) diagram