java's bad implmentation of String