<< and ctor