Added convenience constructors and a friendly error domain.