Principles


 * Aspect-oriented programming
 * Separation of concerns
 * Clean Code