refactored lifecycle out, partial #41 . Introduced better lifecycle with states and transition type-checking on runtime. Ability to overwrite success-state after transition on per-moduletype basis (partial #41)