Brought back the declarative semantics