how compiler does for ctor