restructured initMethod