added working self exercise