finished msp.rkt