The class can support an arbitrary number dimensions