reset moved into HasImpl