move types to a folder
added protocol list
move identifier declaration to a folder
move class header and class body to their super path