State (see State Pattern) prepared, a lot reworked/refactured