declaration paradigm