self types