Declarative design