added << and >> overloadings