Do not use generics for node inheritance. Override getValue() instead with proper return type