implement inherit