Intermediate state
refactored