extending is required to respect the LSP