fully functional v2

calling this push v2. v1 was the original from years ago.