seems close to be working, fixing structure after that