Add state headers
Add state implementation
Merge branch 'state-architecture' into develop