proper init order