You can either have overloading classes or you can have your classes declaration independent of the type declarations. You can not have both.