add new constructors; add in unit tests; improve base/format conversion
update version