SOLID and functional