only call override once