convert super to be a dynamic lookup based on `this`
improve class macro
fix bug with class super