Took care of new SELF_TYPE
Some weird branch stuff