started implementing the declarative contract idea