from self to c