Write-once memory (WOM) is a storage medium with memory elements, called cells, which can take on q levels. Each cell is initially in level 0 and can only increase its level. A t-write WOM code is a coding scheme which allows one to store t messages to the WOM such that on consecutive writes every cell's level does not decrease. The sum-rate of the WOM code, which is the ratio between the total amount of information written in the t writes and the number of memory cells, is bounded by log 2(t + 1). Our main contribution in this work is a construction of binary three-write WOM codes with sum-rate approaching 1.885 for sufficiently large number of cells, while the upper bound is 2. This improves upon a recent construction of sum-rate 1.809. We also give constructions of non-binary WOM codes which give better sum-rate than the currently best known ones.