class InstallationService {

    public void addMeter(final DeviceMessageMetadata deviceMessageMetadata,
            final AddSmartMeterRequest addSmartMeterRequest) throws FunctionalException {
        final String organisationId = deviceMessageMetadata.getOrganisationIdentification();
        final String deviceId = deviceMessageMetadata.getDeviceIdentification();
        LOGGER.debug("addMeter for organisationIdentification: {} for deviceIdentification: {}", organisationId,
                deviceId);
        final SmartMeteringDevice smartMeteringDevice = addSmartMeterRequest.getDevice();

        final SmartMeter smartMeter = this.smartMeterService.getSmartMeter(deviceId, smartMeteringDevice);
        this.smartMeterService.storeMeter(organisationId, addSmartMeterRequest, smartMeter);
        this.osgpCoreRequestMessageSender.send(this.getRequestMessage(deviceMessageMetadata, smartMeteringDevice),
                deviceMessageMetadata.getMessageType(), deviceMessageMetadata.getMessagePriority(),
                deviceMessageMetadata.getScheduleTime());
    }

    public  InstallationService();

}