Add some default constructors to enable looser type constraints