finalized constructors