reduce inheritance level