Revert "Data class work"

This reverts commit 8e1b1184526689d2cf4df2a5ffda42e2e359518b.
Revert "Revert "Data class work""

This reverts commit 81502f323c2db5644fc1fc1701609e63590dac2c.