why increment the ref count when I don't actually need too
little anal reformatting
convert some asserts to errors since they could be caused by bad user input
add in a stupid benchmark