adding 'indefinite' state
reorganizing
removed dynamic object allocation; re-using existing instances