remove fake_ivar and use associated objects instead
use a pre-casted version of self
don't affect object layout