Declarative programming | Best Practices