support appends, overwrites