finished implementing, finished test, ready to merge