add data writing support