shift reduce OMG
basic cast done