moved most initialization to property declarations