no $c, use $self