use $c instead of $self