should make sure it's not self, just in case