diff --git a/modules/configuration/src/main/java/org/apache/ignite/configuration/Configurator.java b/modules/configuration/src/main/java/org/apache/ignite/configuration/Configurator.java
index ba04aca..6150b60 100644
--- a/modules/configuration/src/main/java/org/apache/ignite/configuration/Configurator.java
+++ b/modules/configuration/src/main/java/org/apache/ignite/configuration/Configurator.java
@@ -132,14 +132,12 @@
         Selector<T, TARGET, VIEW, INIT, CHANGE> selector,
         CHANGE newValue
     ) throws ConfigurationValidationException {
-        // TODO: atomic change start
         final T copy = (T) root.copy();
 
         final TARGET select = selector.select(copy);
         select.changeWithoutValidation(newValue);
         copy.validate(root);
         selector.select(root).changeWithoutValidation(newValue);
-        // TODO: atomic change end
     }
 
     /**
@@ -198,7 +196,7 @@
         final String key = property.key();
         property.addListener(new PropertyListener<PROP, PROP>() {
             /** {@inheritDoc} */
-            public void update(PROP newValue, ConfigurationProperty<PROP, PROP> modifier) {
+            @Override public void update(PROP newValue, ConfigurationProperty<PROP, PROP> modifier) {
                 storage.save(key, newValue);
             }
         });
diff --git a/modules/configuration/src/main/java/org/apache/ignite/configuration/internal/DynamicProperty.java b/modules/configuration/src/main/java/org/apache/ignite/configuration/internal/DynamicProperty.java
index 3ab17db..189eea7 100644
--- a/modules/configuration/src/main/java/org/apache/ignite/configuration/internal/DynamicProperty.java
+++ b/modules/configuration/src/main/java/org/apache/ignite/configuration/internal/DynamicProperty.java
@@ -141,7 +141,7 @@
     }
 
     /** {@inheritDoc} */
-    public T value() {
+    @Override public T value() {
         return val;
     }
 
@@ -199,5 +199,4 @@
     public DynamicProperty<T> copy(DynamicConfiguration<?, ?, ?> newRoot) {
         return new DynamicProperty<>(this, newRoot);
     }
-
 }
diff --git a/modules/configuration/src/main/java/org/apache/ignite/configuration/internal/Modifier.java b/modules/configuration/src/main/java/org/apache/ignite/configuration/internal/Modifier.java
index eb123f4..fcc2ce0 100644
--- a/modules/configuration/src/main/java/org/apache/ignite/configuration/internal/Modifier.java
+++ b/modules/configuration/src/main/java/org/apache/ignite/configuration/internal/Modifier.java
@@ -26,7 +26,6 @@
 public interface Modifier<VIEW, INIT, CHANGE> extends ConfigurationProperty<VIEW, CHANGE> {
     /**
      * Change this configuration node value, but without validation.
-     * FIXME: this is a necessary evil, but this should'n be accessed from outside of the configurator.
      * @param change CHANGE object.
      */
     void changeWithoutValidation(CHANGE change);
diff --git a/modules/configuration/src/main/java/org/apache/ignite/configuration/internal/selector/Selector.java b/modules/configuration/src/main/java/org/apache/ignite/configuration/internal/selector/Selector.java
index 177e2c2..ce3ed3c 100644
--- a/modules/configuration/src/main/java/org/apache/ignite/configuration/internal/selector/Selector.java
+++ b/modules/configuration/src/main/java/org/apache/ignite/configuration/internal/selector/Selector.java
@@ -36,5 +36,4 @@
      * @return Configuration element.
      */
     TARGET select(ROOT root);
-
 }
diff --git a/modules/configuration/src/main/java/org/apache/ignite/configuration/storage/ConfigurationStorage.java b/modules/configuration/src/main/java/org/apache/ignite/configuration/storage/ConfigurationStorage.java
index 9cb37e4..1c77a9a 100644
--- a/modules/configuration/src/main/java/org/apache/ignite/configuration/storage/ConfigurationStorage.java
+++ b/modules/configuration/src/main/java/org/apache/ignite/configuration/storage/ConfigurationStorage.java
@@ -52,5 +52,4 @@
      * @throws StorageException If failed to attach listener to configuration storage.
      */
     <T extends Serializable> void listen(String key, Consumer<T> listener) throws StorageException;
-
 }
diff --git a/modules/configuration/src/main/java/org/apache/ignite/configuration/validation/ConfigurationValidationException.java b/modules/configuration/src/main/java/org/apache/ignite/configuration/validation/ConfigurationValidationException.java
index a7860de..20aec33 100644
--- a/modules/configuration/src/main/java/org/apache/ignite/configuration/validation/ConfigurationValidationException.java
+++ b/modules/configuration/src/main/java/org/apache/ignite/configuration/validation/ConfigurationValidationException.java
@@ -21,10 +21,8 @@
  * Configuration validation exception.
  */
 public class ConfigurationValidationException extends RuntimeException {
-
     /** Constructor. */
     public ConfigurationValidationException(String message) {
         super(message);
     }
-
 }
diff --git a/modules/configuration/src/main/java/org/apache/ignite/configuration/validation/FieldValidator.java b/modules/configuration/src/main/java/org/apache/ignite/configuration/validation/FieldValidator.java
index f32a357..6705cf6 100644
--- a/modules/configuration/src/main/java/org/apache/ignite/configuration/validation/FieldValidator.java
+++ b/modules/configuration/src/main/java/org/apache/ignite/configuration/validation/FieldValidator.java
@@ -43,5 +43,4 @@
      * @throws ConfigurationValidationException If validation failed.
      */
     public abstract void validate(T value, C newRoot, C oldRoot) throws ConfigurationValidationException;
-
 }
