self is a bit suspicious name.