added all the stuff n stuff