this version does about what I want it to do