improve and document declarative