big commit. it actually works now.