split declarative into own package