adopted constructors