As top level of this "Lasagna" layered class model, the differences between particular implementations are made. MailBox now has two representations in each group (including IMAP, which is under development).
The is one very good reason for this large class design: no duplication of code. The design is made correctly when none of the layers is empty, which is the case here.
The structure built for folders is the same as demonstrated here for messages.