moved code about, changed some stuff. fully functional.