HOLY CRAP IT WORKS! now must write docs