state initializer pattern