Commit 2: State Implementation

Classes with states implemented in this commit