diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..6fa3299
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+/target/
+/.idea/
+/iconloader.iml
\ No newline at end of file
diff --git a/.idea/.name b/.idea/.name
deleted file mode 100644
index 8627ba3..0000000
--- a/.idea/.name
+++ /dev/null
@@ -1 +0,0 @@
-IconLoader
\ No newline at end of file
diff --git a/.idea/ant.xml b/.idea/ant.xml
deleted file mode 100644
index 313b0c0..0000000
--- a/.idea/ant.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
diff --git a/.idea/artifacts/IconLoader_library.xml b/.idea/artifacts/IconLoader_library.xml
deleted file mode 100644
index 117501b..0000000
--- a/.idea/artifacts/IconLoader_library.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
- $PROJECT_DIR$
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
deleted file mode 100644
index da84ac3..0000000
--- a/.idea/compiler.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/.idea/copyright/JetBrains.xml b/.idea/copyright/JetBrains.xml
deleted file mode 100644
index 8c3435b..0000000
--- a/.idea/copyright/JetBrains.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/copyright/profiles_settings.xml b/.idea/copyright/profiles_settings.xml
deleted file mode 100644
index 9f55282..0000000
--- a/.idea/copyright/profiles_settings.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/dictionaries/kb.xml b/.idea/dictionaries/kb.xml
deleted file mode 100644
index 0f3b645..0000000
--- a/.idea/dictionaries/kb.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
- hidpi
-
-
-
\ No newline at end of file
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
deleted file mode 100644
index e206d70..0000000
--- a/.idea/encodings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
diff --git a/.idea/libraries/eawtstub.xml b/.idea/libraries/eawtstub.xml
deleted file mode 100644
index 0788f46..0000000
--- a/.idea/libraries/eawtstub.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/junit.xml b/.idea/libraries/junit.xml
deleted file mode 100644
index 707c88f..0000000
--- a/.idea/libraries/junit.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
deleted file mode 100644
index f6b06cb..0000000
--- a/.idea/misc.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/.idea/modules.xml b/.idea/modules.xml
deleted file mode 100644
index c1e805a..0000000
--- a/.idea/modules.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/.idea/runConfigurations/All_Tests.xml b/.idea/runConfigurations/All_Tests.xml
deleted file mode 100644
index 1348a4e..0000000
--- a/.idea/runConfigurations/All_Tests.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/scopes/scope_settings.xml b/.idea/scopes/scope_settings.xml
deleted file mode 100644
index 922003b..0000000
--- a/.idea/scopes/scope_settings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml
deleted file mode 100644
index 3b00020..0000000
--- a/.idea/uiDesigner.xml
+++ /dev/null
@@ -1,125 +0,0 @@
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
-
-
-
-
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
deleted file mode 100644
index c80f219..0000000
--- a/.idea/vcs.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
diff --git a/IconLoader.iml b/IconLoader.iml
deleted file mode 100644
index 9ec0168..0000000
--- a/IconLoader.iml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/build.xml b/build.xml
deleted file mode 100644
index 51a5e87..0000000
--- a/build.xml
+++ /dev/null
@@ -1,196 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/iconloader.jar b/iconloader.jar
deleted file mode 100644
index 6831a83..0000000
Binary files a/iconloader.jar and /dev/null differ
diff --git a/lib/junit-4.10.jar b/lib/junit-4.10.jar
deleted file mode 100644
index bf5c0b9..0000000
Binary files a/lib/junit-4.10.jar and /dev/null differ
diff --git a/lib/eawtstub.jar b/lib/org/jetbrains/thirdparty/eawtstub/1.0/eawtstub-1.0.jar
similarity index 100%
rename from lib/eawtstub.jar
rename to lib/org/jetbrains/thirdparty/eawtstub/1.0/eawtstub-1.0.jar
diff --git a/lib/org/jetbrains/thirdparty/eawtstub/1.0/eawtstub-1.0.jar.md5 b/lib/org/jetbrains/thirdparty/eawtstub/1.0/eawtstub-1.0.jar.md5
new file mode 100644
index 0000000..fad7acd
--- /dev/null
+++ b/lib/org/jetbrains/thirdparty/eawtstub/1.0/eawtstub-1.0.jar.md5
@@ -0,0 +1 @@
+ae63595a899d5c66a1069e956f27a60b
diff --git a/lib/org/jetbrains/thirdparty/eawtstub/1.0/eawtstub-1.0.jar.sha1 b/lib/org/jetbrains/thirdparty/eawtstub/1.0/eawtstub-1.0.jar.sha1
new file mode 100644
index 0000000..229a8ad
--- /dev/null
+++ b/lib/org/jetbrains/thirdparty/eawtstub/1.0/eawtstub-1.0.jar.sha1
@@ -0,0 +1 @@
+88bcae7cf5aa7523ab8a1046999ac80cd1d888ec
diff --git a/lib/org/jetbrains/thirdparty/eawtstub/1.0/eawtstub-1.0.pom b/lib/org/jetbrains/thirdparty/eawtstub/1.0/eawtstub-1.0.pom
new file mode 100644
index 0000000..9689ec0
--- /dev/null
+++ b/lib/org/jetbrains/thirdparty/eawtstub/1.0/eawtstub-1.0.pom
@@ -0,0 +1,9 @@
+
+
+ 4.0.0
+ org.jetbrains.thirdparthy
+ eawtstub
+ 1.0
+ POM was created from install:install-file
+
diff --git a/lib/org/jetbrains/thirdparty/eawtstub/1.0/eawtstub-1.0.pom.md5 b/lib/org/jetbrains/thirdparty/eawtstub/1.0/eawtstub-1.0.pom.md5
new file mode 100644
index 0000000..72cbfe8
--- /dev/null
+++ b/lib/org/jetbrains/thirdparty/eawtstub/1.0/eawtstub-1.0.pom.md5
@@ -0,0 +1 @@
+d99920bf9497be1ca2c9a702041831e4
diff --git a/lib/org/jetbrains/thirdparty/eawtstub/1.0/eawtstub-1.0.pom.sha1 b/lib/org/jetbrains/thirdparty/eawtstub/1.0/eawtstub-1.0.pom.sha1
new file mode 100644
index 0000000..26b49d6
--- /dev/null
+++ b/lib/org/jetbrains/thirdparty/eawtstub/1.0/eawtstub-1.0.pom.sha1
@@ -0,0 +1 @@
+605c6dff152546906b5d273c4e419e7c49c9cae2
diff --git a/lib/org/jetbrains/thirdparty/eawtstub/maven-metadata-local.xml b/lib/org/jetbrains/thirdparty/eawtstub/maven-metadata-local.xml
new file mode 100644
index 0000000..f39988b
--- /dev/null
+++ b/lib/org/jetbrains/thirdparty/eawtstub/maven-metadata-local.xml
@@ -0,0 +1,12 @@
+
+
+ org.jetbrains.thirdparthy
+ eawtstub
+
+ 1.0
+
+ 1.0
+
+ 20120705180140
+
+
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..faf33ab
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,61 @@
+
+
+ 4.0.0
+ com.bulenkov
+ iconloader
+ 0.1-SNAPSHOT
+ jar
+ Icon Loader
+ Smart Java Icon Loader with support of HiDPI (Retina) images
+
+ UTF-8
+ 1.7
+ 1.7
+
+
+
+
+ bulenkov
+ Konstantin Bulenkov
+ konstantin@bulenkov.com
+
+
+
+
+ Apache License, Version 2.0
+ https://www.apache.org/licenses/LICENSE-2.0.txt
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.5.1
+
+ 1.7
+ 1.7
+
+
+
+
+
+
+ in-project-repo
+ file:${project.basedir}/lib
+
+
+
+
+ org.jetbrains.thirdparty
+ eawtstub
+ 1.0
+
+
+ junit
+ junit
+ 4.12
+ test
+
+
+
diff --git a/src/com/bulenkov/iconloader/AppleHiDPIScaledImage.java b/src/main/java/com/bulenkov/iconloader/AppleHiDPIScaledImage.java
similarity index 100%
rename from src/com/bulenkov/iconloader/AppleHiDPIScaledImage.java
rename to src/main/java/com/bulenkov/iconloader/AppleHiDPIScaledImage.java
diff --git a/src/com/bulenkov/iconloader/HiDPIScaledGraphics.java b/src/main/java/com/bulenkov/iconloader/HiDPIScaledGraphics.java
similarity index 100%
rename from src/com/bulenkov/iconloader/HiDPIScaledGraphics.java
rename to src/main/java/com/bulenkov/iconloader/HiDPIScaledGraphics.java
diff --git a/src/com/bulenkov/iconloader/IconLoader.java b/src/main/java/com/bulenkov/iconloader/IconLoader.java
similarity index 100%
rename from src/com/bulenkov/iconloader/IconLoader.java
rename to src/main/java/com/bulenkov/iconloader/IconLoader.java
diff --git a/src/com/bulenkov/iconloader/IsRetina.java b/src/main/java/com/bulenkov/iconloader/IsRetina.java
similarity index 100%
rename from src/com/bulenkov/iconloader/IsRetina.java
rename to src/main/java/com/bulenkov/iconloader/IsRetina.java
diff --git a/src/com/bulenkov/iconloader/JBHiDPIScaledImage.java b/src/main/java/com/bulenkov/iconloader/JBHiDPIScaledImage.java
similarity index 100%
rename from src/com/bulenkov/iconloader/JBHiDPIScaledImage.java
rename to src/main/java/com/bulenkov/iconloader/JBHiDPIScaledImage.java
diff --git a/src/com/bulenkov/iconloader/RetinaImage.java b/src/main/java/com/bulenkov/iconloader/RetinaImage.java
similarity index 100%
rename from src/com/bulenkov/iconloader/RetinaImage.java
rename to src/main/java/com/bulenkov/iconloader/RetinaImage.java
diff --git a/src/com/bulenkov/iconloader/util/ArrayUtilRt.java b/src/main/java/com/bulenkov/iconloader/util/ArrayUtilRt.java
similarity index 100%
rename from src/com/bulenkov/iconloader/util/ArrayUtilRt.java
rename to src/main/java/com/bulenkov/iconloader/util/ArrayUtilRt.java
diff --git a/src/com/bulenkov/iconloader/util/AsyncByteArrayOutputStream.java b/src/main/java/com/bulenkov/iconloader/util/AsyncByteArrayOutputStream.java
similarity index 100%
rename from src/com/bulenkov/iconloader/util/AsyncByteArrayOutputStream.java
rename to src/main/java/com/bulenkov/iconloader/util/AsyncByteArrayOutputStream.java
diff --git a/src/com/bulenkov/iconloader/util/Base64Converter.java b/src/main/java/com/bulenkov/iconloader/util/Base64Converter.java
similarity index 100%
rename from src/com/bulenkov/iconloader/util/Base64Converter.java
rename to src/main/java/com/bulenkov/iconloader/util/Base64Converter.java
diff --git a/src/com/bulenkov/iconloader/util/BufferExposingByteArrayOutputStream.java b/src/main/java/com/bulenkov/iconloader/util/BufferExposingByteArrayOutputStream.java
similarity index 100%
rename from src/com/bulenkov/iconloader/util/BufferExposingByteArrayOutputStream.java
rename to src/main/java/com/bulenkov/iconloader/util/BufferExposingByteArrayOutputStream.java
diff --git a/src/com/bulenkov/iconloader/util/CenteredIcon.java b/src/main/java/com/bulenkov/iconloader/util/CenteredIcon.java
similarity index 100%
rename from src/com/bulenkov/iconloader/util/CenteredIcon.java
rename to src/main/java/com/bulenkov/iconloader/util/CenteredIcon.java
diff --git a/src/com/bulenkov/iconloader/util/ColorUtil.java b/src/main/java/com/bulenkov/iconloader/util/ColorUtil.java
similarity index 100%
rename from src/com/bulenkov/iconloader/util/ColorUtil.java
rename to src/main/java/com/bulenkov/iconloader/util/ColorUtil.java
diff --git a/src/com/bulenkov/iconloader/util/ComparingUtils.java b/src/main/java/com/bulenkov/iconloader/util/ComparingUtils.java
similarity index 100%
rename from src/com/bulenkov/iconloader/util/ComparingUtils.java
rename to src/main/java/com/bulenkov/iconloader/util/ComparingUtils.java
diff --git a/src/com/bulenkov/iconloader/util/ConcurrencyUtil.java b/src/main/java/com/bulenkov/iconloader/util/ConcurrencyUtil.java
similarity index 100%
rename from src/com/bulenkov/iconloader/util/ConcurrencyUtil.java
rename to src/main/java/com/bulenkov/iconloader/util/ConcurrencyUtil.java
diff --git a/src/com/bulenkov/iconloader/util/DoubleColor.java b/src/main/java/com/bulenkov/iconloader/util/DoubleColor.java
similarity index 100%
rename from src/com/bulenkov/iconloader/util/DoubleColor.java
rename to src/main/java/com/bulenkov/iconloader/util/DoubleColor.java
diff --git a/src/com/bulenkov/iconloader/util/EmptyIcon.java b/src/main/java/com/bulenkov/iconloader/util/EmptyIcon.java
similarity index 100%
rename from src/com/bulenkov/iconloader/util/EmptyIcon.java
rename to src/main/java/com/bulenkov/iconloader/util/EmptyIcon.java
diff --git a/src/com/bulenkov/iconloader/util/GraphicsConfig.java b/src/main/java/com/bulenkov/iconloader/util/GraphicsConfig.java
similarity index 100%
rename from src/com/bulenkov/iconloader/util/GraphicsConfig.java
rename to src/main/java/com/bulenkov/iconloader/util/GraphicsConfig.java
diff --git a/src/com/bulenkov/iconloader/util/GraphicsUtil.java b/src/main/java/com/bulenkov/iconloader/util/GraphicsUtil.java
similarity index 100%
rename from src/com/bulenkov/iconloader/util/GraphicsUtil.java
rename to src/main/java/com/bulenkov/iconloader/util/GraphicsUtil.java
diff --git a/src/com/bulenkov/iconloader/util/Gray.java b/src/main/java/com/bulenkov/iconloader/util/Gray.java
similarity index 100%
rename from src/com/bulenkov/iconloader/util/Gray.java
rename to src/main/java/com/bulenkov/iconloader/util/Gray.java
diff --git a/src/com/bulenkov/iconloader/util/Pair.java b/src/main/java/com/bulenkov/iconloader/util/Pair.java
similarity index 100%
rename from src/com/bulenkov/iconloader/util/Pair.java
rename to src/main/java/com/bulenkov/iconloader/util/Pair.java
diff --git a/src/com/bulenkov/iconloader/util/Ref.java b/src/main/java/com/bulenkov/iconloader/util/Ref.java
similarity index 100%
rename from src/com/bulenkov/iconloader/util/Ref.java
rename to src/main/java/com/bulenkov/iconloader/util/Ref.java
diff --git a/src/com/bulenkov/iconloader/util/ReflectionUtil.java b/src/main/java/com/bulenkov/iconloader/util/ReflectionUtil.java
similarity index 100%
rename from src/com/bulenkov/iconloader/util/ReflectionUtil.java
rename to src/main/java/com/bulenkov/iconloader/util/ReflectionUtil.java
diff --git a/src/com/bulenkov/iconloader/util/StringFactory.java b/src/main/java/com/bulenkov/iconloader/util/StringFactory.java
similarity index 100%
rename from src/com/bulenkov/iconloader/util/StringFactory.java
rename to src/main/java/com/bulenkov/iconloader/util/StringFactory.java
diff --git a/src/com/bulenkov/iconloader/util/StringUtil.java b/src/main/java/com/bulenkov/iconloader/util/StringUtil.java
similarity index 100%
rename from src/com/bulenkov/iconloader/util/StringUtil.java
rename to src/main/java/com/bulenkov/iconloader/util/StringUtil.java
diff --git a/src/com/bulenkov/iconloader/util/SystemInfo.java b/src/main/java/com/bulenkov/iconloader/util/SystemInfo.java
similarity index 100%
rename from src/com/bulenkov/iconloader/util/SystemInfo.java
rename to src/main/java/com/bulenkov/iconloader/util/SystemInfo.java
diff --git a/src/com/bulenkov/iconloader/util/UIUtil.java b/src/main/java/com/bulenkov/iconloader/util/UIUtil.java
similarity index 100%
rename from src/com/bulenkov/iconloader/util/UIUtil.java
rename to src/main/java/com/bulenkov/iconloader/util/UIUtil.java
diff --git a/src/com/bulenkov/iconloader/util/URLUtil.java b/src/main/java/com/bulenkov/iconloader/util/URLUtil.java
similarity index 100%
rename from src/com/bulenkov/iconloader/util/URLUtil.java
rename to src/main/java/com/bulenkov/iconloader/util/URLUtil.java
diff --git a/resources/META-INF/LICENSE b/src/main/resources/META-INF/LICENSE
similarity index 100%
rename from resources/META-INF/LICENSE
rename to src/main/resources/META-INF/LICENSE
diff --git a/resources/META-INF/MANIFEST.MF b/src/main/resources/META-INF/MANIFEST.MF
similarity index 100%
rename from resources/META-INF/MANIFEST.MF
rename to src/main/resources/META-INF/MANIFEST.MF
diff --git a/tests/com/bulenkov/iconloader/IconLoaderDemoFrame.java b/src/test/java/com/bulenkov/iconloader/IconLoaderDemoFrame.java
similarity index 100%
rename from tests/com/bulenkov/iconloader/IconLoaderDemoFrame.java
rename to src/test/java/com/bulenkov/iconloader/IconLoaderDemoFrame.java
diff --git a/tests/com/bulenkov/iconloader/IconLoaderTest.java b/src/test/java/com/bulenkov/iconloader/IconLoaderTest.java
similarity index 100%
rename from tests/com/bulenkov/iconloader/IconLoaderTest.java
rename to src/test/java/com/bulenkov/iconloader/IconLoaderTest.java
diff --git a/tests/com/bulenkov/iconloader/IconLoaderTestCase.java b/src/test/java/com/bulenkov/iconloader/IconLoaderTestCase.java
similarity index 100%
rename from tests/com/bulenkov/iconloader/IconLoaderTestCase.java
rename to src/test/java/com/bulenkov/iconloader/IconLoaderTestCase.java
diff --git a/tests/icons/print.png b/src/test/resources/icons/print.png
similarity index 100%
rename from tests/icons/print.png
rename to src/test/resources/icons/print.png
diff --git a/tests/icons/print@2x.png b/src/test/resources/icons/print@2x.png
similarity index 100%
rename from tests/icons/print@2x.png
rename to src/test/resources/icons/print@2x.png
diff --git a/tests/icons/print@2x_dark.png b/src/test/resources/icons/print@2x_dark.png
similarity index 100%
rename from tests/icons/print@2x_dark.png
rename to src/test/resources/icons/print@2x_dark.png
diff --git a/tests/icons/printPreview.png b/src/test/resources/icons/printPreview.png
similarity index 100%
rename from tests/icons/printPreview.png
rename to src/test/resources/icons/printPreview.png
diff --git a/tests/icons/print_dark.png b/src/test/resources/icons/print_dark.png
similarity index 100%
rename from tests/icons/print_dark.png
rename to src/test/resources/icons/print_dark.png