don't expose state, expose Ready instead