moved all field initialization from __init__ to initialize