a declarative component framework