Layers Each layer should extends the previous one in the next order: Host layer Profile layer Listener layer Sender layer Retriever layer Group layer Controls layer Business layer (Optional) Controls layer should be enough