add explicit constructors