Shuffled types for better organization, more JavaDocs