add a selfTest()