Did some refactoring to support having non-homogenous data in a panel