add convenience constructors