added generic data class