new structure, write methods are correct (i think) and no longer hard coded