reworked data class