maybe instanceof self which is more obvious