made formula read & write protected; added operator<< support