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