why duplicating all this logic here, while it is already done by the parent class ?