making a big mess trying to structure this