starting memorization
rough memorization working
actually adds mem
updates todo