Split trait into read and write side