This is difficult as fuck