chosen modifications, close to generic solution