SOLID principles for architecture