init() code moved back to constructors