Completed rw implementation