copy-pastes removed by introducing data class