intermediate state during refactor :(