here it is working. could've used more frequent commits, but whatever