going to be rereading this for a couple days...