use definition as prototype to support individual state