nearing a working beta

TODO: extra credit
overload << and >> correctly
debug