what is self doing here?