almost all state methods are now static and pure (clear separation between data & logic)