added read/write, about to always merge+optimize
using arrays as paths