Added a convenience constructor
Added assertions