changes API nearly complete
tests