Better WriteResult, still need to work on ReadResult