using `self` is almost as evil. Use `static` instead.