Interim commit does not compile nicely
Introduced GovernableState to keep track of the mutable data
(not a State pattern)