Jam: A smooth extension of Java with mixins