ok the recursive scoring thing needs to be done
added some helper funcs
the basics of scoring seem to be coming together