Browse Source

Initial commit

The progress so far.
Tankernn 8 years ago
commit
3ad57662f2

+ 27 - 0
.classpath

@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="res"/>
+	<classpathentry kind="src" output="target/classes" path="src/main/java">
+		<attributes>
+			<attribute name="optional" value="true"/>
+			<attribute name="maven.pomderived" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
+		<attributes>
+			<attribute name="maven.pomderived" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="src" output="target/test-classes" path="src/test/java">
+		<attributes>
+			<attribute name="optional" value="true"/>
+			<attribute name="maven.pomderived" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
+		<attributes>
+			<attribute name="maven.pomderived" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>

+ 18 - 0
.gitignore

@@ -0,0 +1,18 @@
+.settings/
+.metadata/
+bin/
+logs/
+*.class
+*.properties
+*.log
+
+# Mobile Tools for Java (J2ME)
+.mtj.tmp/
+
+# Package Files #
+*.jar
+*.war
+*.ear
+
+# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
+hs_err_pid*

+ 23 - 0
.project

@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>Periodic Table</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>

+ 77 - 0
pom.xml

@@ -0,0 +1,77 @@
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+
+	<groupId>eu.tankernn.periodic</groupId>
+	<artifactId>periodic-table</artifactId>
+	<version>1.0-SNAPSHOT</version>
+	<packaging>jar</packaging>
+
+	<url>http://tankernn.eu</url>
+	<name>Periodic Table</name>
+
+	<dependencies>
+		<dependency>
+			<groupId>junit</groupId>
+			<artifactId>junit</artifactId>
+			<version>4.8.2</version>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.json</groupId>
+			<artifactId>json</artifactId>
+			<version>20150729</version>
+		</dependency>
+	</dependencies>
+
+	<build>
+		<plugins>
+			<plugin>
+				<artifactId>maven-assembly-plugin</artifactId>
+				<executions>
+					<execution>
+						<phase>package</phase>
+						<goals>
+							<goal>single</goal>
+						</goals>
+						<configuration>
+							<archive>
+								<manifest>
+									<addClasspath>true</addClasspath>
+									<mainClass>eu.tankernn.periodictable.PeriodicTable</mainClass>
+								</manifest>
+							</archive>
+							<!-- The filename of the assembled distribution file defualt ${project.build.finalName} -->
+							<finalName>${project.build.finalName}</finalName>
+							<appendAssemblyId>false</appendAssemblyId>
+						</configuration>
+					</execution>
+				</executions>
+				<configuration>
+					<descriptorRefs>
+						<descriptorRef>jar-with-dependencies</descriptorRef>
+					</descriptorRefs>
+				</configuration>
+			</plugin>
+		</plugins>
+		<resources>
+			<resource>
+				<directory>res</directory>
+				<excludes>
+				</excludes>
+			</resource>
+<!-- 			<resource> -->
+<!-- 				<directory>src/main/java</directory> -->
+<!-- 				<includes> -->
+<!-- 					<include>**/*.glsl</include> -->
+<!-- 				</includes> -->
+<!-- 			</resource> -->
+		</resources>
+	</build>
+
+	<properties>
+		<maven.compiler.source>1.8</maven.compiler.source>
+		<maven.compiler.target>1.8</maven.compiler.target>
+	</properties>
+</project>

+ 1842 - 0
res/periodicTable.json

@@ -0,0 +1,1842 @@
+{
+	"table": [
+		{
+			"wiki": "http://en.wikipedia.org/wiki/Period%201%20element",
+			"elements": [
+				{
+					"group": "",
+					"position": 0,
+					"name": "Hydrogen",
+					"number": 1,
+					"small": "H",
+					"molar": 1.00794,
+					"electrons": [
+						1
+					]
+				},
+				{
+					"group": "Element Noble p",
+					"position": 17,
+					"name": "Helium",
+					"number": 2,
+					"small": "He",
+					"molar": 4.002602,
+					"electrons": [
+						2
+					]
+				}
+			]
+		},
+		{
+			"wiki": "http://en.wikipedia.org/wiki/Period%202%20element",
+			"elements": [
+				{
+					"group": "Element Alkali s",
+					"position": 0,
+					"name": "Lithium",
+					"number": 3,
+					"small": "Li",
+					"molar": 6.941,
+					"electrons": [
+						2,
+						1
+					]
+				},
+				{
+					"group": "Element Alkaline s",
+					"position": 1,
+					"name": "Beryllium",
+					"number": 4,
+					"small": "Be",
+					"molar": 9.012182,
+					"electrons": [
+						2,
+						2
+					]
+				},
+				{
+					"group": "Element Metalloid Boron p",
+					"position": 12,
+					"name": "Boron",
+					"number": 5,
+					"small": "B",
+					"molar": 10.811,
+					"electrons": [
+						2,
+						3
+					]
+				},
+				{
+					"group": "Element Nonmetal Carbon p",
+					"position": 13,
+					"name": "Carbon",
+					"number": 6,
+					"small": "C",
+					"molar": 12.0107,
+					"electrons": [
+						2,
+						4
+					]
+				},
+				{
+					"group": "Element Nonmetal Pnictogen p",
+					"position": 14,
+					"name": "Nitrogen",
+					"number": 7,
+					"small": "N",
+					"molar": 14.0067,
+					"electrons": [
+						2,
+						5
+					]
+				},
+				{
+					"group": "Element Nonmetal Chalcogen p",
+					"position": 15,
+					"name": "Oxygen",
+					"number": 8,
+					"small": "O",
+					"molar": 15.9994,
+					"electrons": [
+						2,
+						6
+					]
+				},
+				{
+					"group": "Element Halogen p",
+					"position": 16,
+					"name": "Fluorine",
+					"number": 9,
+					"small": "F",
+					"molar": 18.998404,
+					"electrons": [
+						2,
+						7
+					]
+				},
+				{
+					"group": "Element Noble p",
+					"position": 17,
+					"name": "Neon",
+					"number": 10,
+					"small": "Ne",
+					"molar": 20.1797,
+					"electrons": [
+						2,
+						8
+					]
+				}
+			]
+		},
+		{
+			"wiki": "http://en.wikipedia.org/wiki/Period%203%20element",
+			"elements": [
+				{
+					"group": "Element Alkali s",
+					"position": 0,
+					"name": "Sodium",
+					"number": 11,
+					"small": "Na",
+					"molar": 22.989769,
+					"electrons": [
+						2,
+						8,
+						1
+					]
+				},
+				{
+					"group": "Element Alkaline s",
+					"position": 1,
+					"name": "Magnesium",
+					"number": 12,
+					"small": "Mg",
+					"molar": 24.305,
+					"electrons": [
+						2,
+						8,
+						2
+					]
+				},
+				{
+					"group": "Element Poor Boron p",
+					"position": 12,
+					"name": "Aluminium",
+					"number": 13,
+					"small": "Al",
+					"molar": 26.981539,
+					"electrons": [
+						2,
+						8,
+						3
+					]
+				},
+				{
+					"group": "Element Metalloid Carbon p",
+					"position": 13,
+					"name": "Silicon",
+					"number": 14,
+					"small": "Si",
+					"molar": 28.0855,
+					"electrons": [
+						2,
+						8,
+						4
+					]
+				},
+				{
+					"group": "Element Nonmetal Pnictogen p",
+					"position": 14,
+					"name": "Phosphorus",
+					"number": 15,
+					"small": "P",
+					"molar": 30.973763,
+					"electrons": [
+						2,
+						8,
+						5
+					]
+				},
+				{
+					"group": "Element Nonmetal Chalcogen p",
+					"position": 15,
+					"name": "Sulfur",
+					"number": 16,
+					"small": "S",
+					"molar": 32.065,
+					"electrons": [
+						2,
+						8,
+						6
+					]
+				},
+				{
+					"group": "Element Halogen p",
+					"position": 16,
+					"name": "Chlorine",
+					"number": 17,
+					"small": "Cl",
+					"molar": 35.453,
+					"electrons": [
+						2,
+						8,
+						7
+					]
+				},
+				{
+					"group": "Element Noble p",
+					"position": 17,
+					"name": "Argon",
+					"number": 18,
+					"small": "Ar",
+					"molar": 39.948,
+					"electrons": [
+						2,
+						8,
+						8
+					]
+				}
+			]
+		},
+		{
+			"wiki": "http://en.wikipedia.org/wiki/Period%204%20element",
+			"elements": [
+				{
+					"group": "Element Alkali s",
+					"position": 0,
+					"name": "Potassium",
+					"number": 19,
+					"small": "K",
+					"molar": 39.0983,
+					"electrons": [
+						2,
+						8,
+						8,
+						1
+					]
+				},
+				{
+					"group": "Element Alkaline s",
+					"position": 1,
+					"name": "Calcium",
+					"number": 20,
+					"small": "Ca",
+					"molar": 40.078,
+					"electrons": [
+						2,
+						8,
+						8,
+						2
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 2,
+					"name": "Scandium",
+					"number": 21,
+					"small": "Sc",
+					"molar": 44.955914,
+					"electrons": [
+						2,
+						8,
+						9,
+						2
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 3,
+					"name": "Titanium",
+					"number": 22,
+					"small": "Ti",
+					"molar": 47.867,
+					"electrons": [
+						2,
+						8,
+						10,
+						2
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 4,
+					"name": "Vanadium",
+					"number": 23,
+					"small": "V",
+					"molar": 50.9415,
+					"electrons": [
+						2,
+						8,
+						11,
+						2
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 5,
+					"name": "Chromium",
+					"number": 24,
+					"small": "Cr",
+					"molar": 51.9961,
+					"electrons": [
+						2,
+						8,
+						13,
+						1
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 6,
+					"name": "Manganese",
+					"number": 25,
+					"small": "Mn",
+					"molar": 54.938046,
+					"electrons": [
+						2,
+						8,
+						13,
+						2
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 7,
+					"name": "Iron",
+					"number": 26,
+					"small": "Fe",
+					"molar": 55.845,
+					"electrons": [
+						2,
+						8,
+						14,
+						2
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 8,
+					"name": "Cobalt",
+					"number": 27,
+					"small": "Co",
+					"molar": 58.933193,
+					"electrons": [
+						2,
+						8,
+						15,
+						2
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 9,
+					"name": "Nickel",
+					"number": 28,
+					"small": "Ni",
+					"molar": 58.6934,
+					"electrons": [
+						2,
+						8,
+						16,
+						2
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 10,
+					"name": "Copper",
+					"number": 29,
+					"small": "Cu",
+					"molar": 63.546,
+					"electrons": [
+						2,
+						8,
+						18,
+						1
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 11,
+					"name": "Zinc",
+					"number": 30,
+					"small": "Zn",
+					"molar": 65.38,
+					"electrons": [
+						2,
+						8,
+						18,
+						2
+					]
+				},
+				{
+					"group": "Element Poor Boron p",
+					"position": 12,
+					"name": "Gallium",
+					"number": 31,
+					"small": "Ga",
+					"molar": 69.723,
+					"electrons": [
+						2,
+						8,
+						18,
+						3
+					]
+				},
+				{
+					"group": "Element Metalloid Carbon p",
+					"position": 13,
+					"name": "Germanium",
+					"number": 32,
+					"small": "Ge",
+					"molar": 72.63,
+					"electrons": [
+						2,
+						8,
+						18,
+						4
+					]
+				},
+				{
+					"group": "Element Metalloid Pnictogen p",
+					"position": 14,
+					"name": "Arsenic",
+					"number": 33,
+					"small": "As",
+					"molar": 74.9216,
+					"electrons": [
+						2,
+						8,
+						18,
+						5
+					]
+				},
+				{
+					"group": "Element Nonmetal Chalcogen p",
+					"position": 15,
+					"name": "Selenium",
+					"number": 34,
+					"small": "Se",
+					"molar": 78.96,
+					"electrons": [
+						2,
+						8,
+						18,
+						6
+					]
+				},
+				{
+					"group": "Element Halogen p",
+					"position": 16,
+					"name": "Bromine",
+					"number": 35,
+					"small": "Br",
+					"molar": 79.904,
+					"electrons": [
+						2,
+						8,
+						18,
+						7
+					]
+				},
+				{
+					"group": "Element Noble p",
+					"position": 17,
+					"name": "Krypton",
+					"number": 36,
+					"small": "Kr",
+					"molar": 83.798,
+					"electrons": [
+						2,
+						8,
+						18,
+						8
+					]
+				}
+			]
+		},
+		{
+			"wiki": "http://en.wikipedia.org/wiki/Period%205%20element",
+			"elements": [
+				{
+					"group": "Element Alkali s",
+					"position": 0,
+					"name": "Rubidium",
+					"number": 37,
+					"small": "Rb",
+					"molar": 85.4678,
+					"electrons": [
+						2,
+						8,
+						18,
+						8,
+						1
+					]
+				},
+				{
+					"group": "Element Alkaline s",
+					"position": 1,
+					"name": "Strontium",
+					"number": 38,
+					"small": "Sr",
+					"molar": 87.62,
+					"electrons": [
+						2,
+						8,
+						18,
+						8,
+						2
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 2,
+					"name": "Yttrium",
+					"number": 39,
+					"small": "Y",
+					"molar": 88.90585,
+					"electrons": [
+						2,
+						8,
+						18,
+						9,
+						2
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 3,
+					"name": "Zirconium",
+					"number": 40,
+					"small": "Zr",
+					"molar": 91.224,
+					"electrons": [
+						2,
+						8,
+						18,
+						10,
+						2
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 4,
+					"name": "Niobium",
+					"number": 41,
+					"small": "Nb",
+					"molar": 92.90638,
+					"electrons": [
+						2,
+						8,
+						18,
+						12,
+						1
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 5,
+					"name": "Molybdenum",
+					"number": 42,
+					"small": "Mo",
+					"molar": 95.96,
+					"electrons": [
+						2,
+						8,
+						18,
+						13,
+						1
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 6,
+					"name": "Technetium",
+					"number": 43,
+					"small": "Tc",
+					"molar": 98,
+					"electrons": [
+						2,
+						8,
+						18,
+						13,
+						2
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 7,
+					"name": "Ruthenium",
+					"number": 44,
+					"small": "Ru",
+					"molar": 101.07,
+					"electrons": [
+						2,
+						8,
+						18,
+						15,
+						1
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 8,
+					"name": "Rhodium",
+					"number": 45,
+					"small": "Rh",
+					"molar": 102.9055,
+					"electrons": [
+						2,
+						8,
+						18,
+						16,
+						1
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 9,
+					"name": "Palladium",
+					"number": 46,
+					"small": "Pd",
+					"molar": 106.42,
+					"electrons": [
+						2,
+						8,
+						18,
+						18
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 10,
+					"name": "Silver",
+					"number": 47,
+					"small": "Ag",
+					"molar": 107.8682,
+					"electrons": [
+						2,
+						8,
+						18,
+						18,
+						1
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 11,
+					"name": "Cadmium",
+					"number": 48,
+					"small": "Cd",
+					"molar": 112.411,
+					"electrons": [
+						2,
+						8,
+						18,
+						18,
+						2
+					]
+				},
+				{
+					"group": "Element Poor Boron p",
+					"position": 12,
+					"name": "Indium",
+					"number": 49,
+					"small": "In",
+					"molar": 114.818,
+					"electrons": [
+						2,
+						8,
+						18,
+						18,
+						3
+					]
+				},
+				{
+					"group": "Element Poor Carbon p",
+					"position": 13,
+					"name": "Tin",
+					"number": 50,
+					"small": "Sn",
+					"molar": 118.71,
+					"electrons": [
+						2,
+						8,
+						18,
+						18,
+						4
+					]
+				},
+				{
+					"group": "Element Metalloid Pnictogen p",
+					"position": 14,
+					"name": "Antimony",
+					"number": 51,
+					"small": "Sb",
+					"molar": 121.76,
+					"electrons": [
+						2,
+						8,
+						18,
+						18,
+						5
+					]
+				},
+				{
+					"group": "Element Metalloid Chalcogen p",
+					"position": 15,
+					"name": "Tellurium",
+					"number": 52,
+					"small": "Te",
+					"molar": 127.6,
+					"electrons": [
+						2,
+						8,
+						18,
+						18,
+						6
+					]
+				},
+				{
+					"group": "Element Halogen p",
+					"position": 16,
+					"name": "Iodine",
+					"number": 53,
+					"small": "I",
+					"molar": 126.90447,
+					"electrons": [
+						2,
+						8,
+						18,
+						18,
+						7
+					]
+				},
+				{
+					"group": "Element Noble p",
+					"position": 17,
+					"name": "Xenon",
+					"number": 54,
+					"small": "Xe",
+					"molar": 131.293,
+					"electrons": [
+						2,
+						8,
+						18,
+						18,
+						8
+					]
+				}
+			]
+		},
+		{
+			"wiki": "http://en.wikipedia.org/wiki/Period%206%20element",
+			"elements": [
+				{
+					"group": "Element Alkali s",
+					"position": 0,
+					"name": "Caesium",
+					"number": 55,
+					"small": "Cs",
+					"molar": 132.90546,
+					"electrons": [
+						2,
+						8,
+						18,
+						18,
+						8,
+						1
+					]
+				},
+				{
+					"group": "Element Alkaline s",
+					"position": 1,
+					"name": "Barium",
+					"number": 56,
+					"small": "Ba",
+					"molar": 137.327,
+					"electrons": [
+						2,
+						8,
+						18,
+						18,
+						8,
+						2
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 3,
+					"name": "Hafnium",
+					"number": 72,
+					"small": "Hf",
+					"molar": 178.49,
+					"electrons": [
+						2,
+						8,
+						18,
+						32,
+						10,
+						2
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 4,
+					"name": "Tantalum",
+					"number": 73,
+					"small": "Ta",
+					"molar": 180.94788,
+					"electrons": [
+						2,
+						8,
+						18,
+						32,
+						11,
+						2
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 5,
+					"name": "Tungsten",
+					"number": 74,
+					"small": "W",
+					"molar": 183.84,
+					"electrons": [
+						2,
+						8,
+						18,
+						32,
+						12,
+						2
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 6,
+					"name": "Rhenium",
+					"number": 75,
+					"small": "Re",
+					"molar": 186.207,
+					"electrons": [
+						2,
+						8,
+						18,
+						32,
+						13,
+						2
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 7,
+					"name": "Osmium",
+					"number": 76,
+					"small": "Os",
+					"molar": 190.23,
+					"electrons": [
+						2,
+						8,
+						18,
+						32,
+						14,
+						2
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 8,
+					"name": "Iridium",
+					"number": 77,
+					"small": "Ir",
+					"molar": 192.217,
+					"electrons": [
+						2,
+						8,
+						18,
+						32,
+						15,
+						2
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 9,
+					"name": "Platinum",
+					"number": 78,
+					"small": "Pt",
+					"molar": 195.084,
+					"electrons": [
+						2,
+						8,
+						18,
+						32,
+						17,
+						1
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 10,
+					"name": "Gold",
+					"number": 79,
+					"small": "Au",
+					"molar": 196.96657,
+					"electrons": [
+						2,
+						8,
+						18,
+						32,
+						18,
+						1
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 11,
+					"name": "Mercury",
+					"number": 80,
+					"small": "Hg",
+					"molar": 200.59,
+					"electrons": [
+						2,
+						8,
+						18,
+						32,
+						18,
+						2
+					]
+				},
+				{
+					"group": "Element Poor Boron p",
+					"position": 12,
+					"name": "Thallium",
+					"number": 81,
+					"small": "Tl",
+					"molar": 204.3833,
+					"electrons": [
+						2,
+						8,
+						18,
+						32,
+						18,
+						3
+					]
+				},
+				{
+					"group": "Element Poor Carbon p",
+					"position": 13,
+					"name": "Lead",
+					"number": 82,
+					"small": "Pb",
+					"molar": 207.2,
+					"electrons": [
+						2,
+						8,
+						18,
+						32,
+						18,
+						4
+					]
+				},
+				{
+					"group": "Element Poor Pnictogen p",
+					"position": 14,
+					"name": "Bismuth",
+					"number": 83,
+					"small": "Bi",
+					"molar": 208.9804,
+					"electrons": [
+						2,
+						8,
+						18,
+						32,
+						18,
+						5
+					]
+				},
+				{
+					"group": "Element Metalloid Chalcogen p",
+					"position": 15,
+					"name": "Polonium",
+					"number": 84,
+					"small": "Po",
+					"molar": 209,
+					"electrons": [
+						2,
+						8,
+						18,
+						32,
+						18,
+						6
+					]
+				},
+				{
+					"group": "Element Halogen p",
+					"position": 16,
+					"name": "Astatine",
+					"number": 85,
+					"small": "At",
+					"molar": 210,
+					"electrons": [
+						2,
+						8,
+						18,
+						32,
+						18,
+						7
+					]
+				},
+				{
+					"group": "Element Noble p",
+					"position": 17,
+					"name": "Radon",
+					"number": 86,
+					"small": "Rn",
+					"molar": 222,
+					"electrons": [
+						2,
+						8,
+						18,
+						32,
+						18,
+						8
+					]
+				}
+			]
+		},
+		{
+			"wiki": "http://en.wikipedia.org/wiki/Period%207%20element",
+			"elements": [
+				{
+					"group": "Element Alkali s",
+					"position": 0,
+					"name": "Francium",
+					"number": 87,
+					"small": "Fr",
+					"molar": 223,
+					"electrons": [
+						2,
+						8,
+						18,
+						32,
+						18,
+						8,
+						1
+					]
+				},
+				{
+					"group": "Element Alkaline s",
+					"position": 1,
+					"name": "Radium",
+					"number": 88,
+					"small": "Ra",
+					"molar": 226,
+					"electrons": [
+						2,
+						8,
+						18,
+						32,
+						18,
+						8,
+						2
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 3,
+					"name": "Rutherfordium",
+					"number": 104,
+					"small": "Rf",
+					"molar": 267,
+					"electrons": [
+						2,
+						8,
+						18,
+						32,
+						32,
+						10,
+						2
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 4,
+					"name": "Dubnium",
+					"number": 105,
+					"small": "Db",
+					"molar": 268,
+					"electrons": [
+						2,
+						8,
+						18,
+						32,
+						32,
+						11,
+						2
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 5,
+					"name": "Seaborgium",
+					"number": 106,
+					"small": "Sg",
+					"molar": 271,
+					"electrons": [
+						2,
+						8,
+						18,
+						32,
+						32,
+						12,
+						2
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 6,
+					"name": "Bohrium",
+					"number": 107,
+					"small": "Bh",
+					"molar": 272,
+					"electrons": [
+						2,
+						8,
+						18,
+						32,
+						32,
+						13,
+						2
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 7,
+					"name": "Hassium",
+					"number": 108,
+					"small": "Hs",
+					"molar": 270,
+					"electrons": [
+						2,
+						8,
+						18,
+						32,
+						32,
+						14,
+						2
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 8,
+					"name": "Meitnerium",
+					"number": 109,
+					"small": "Mt",
+					"molar": 276,
+					"electrons": [
+						2,
+						8,
+						18,
+						32,
+						32,
+						15,
+						2
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 9,
+					"name": "Darmstadtium",
+					"number": 110,
+					"small": "Ds",
+					"molar": 281,
+					"electrons": [
+						2,
+						8,
+						18,
+						32,
+						32,
+						17,
+						1
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 10,
+					"name": "Roentgenium",
+					"number": 111,
+					"small": "Rg",
+					"molar": 280,
+					"electrons": [
+						2,
+						8,
+						18,
+						32,
+						32,
+						18,
+						1
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 11,
+					"name": "Copernicium",
+					"number": 112,
+					"small": "Cn",
+					"molar": 285,
+					"electrons": [
+						2,
+						8,
+						18,
+						32,
+						32,
+						18,
+						2
+					]
+				},
+				{
+					"group": "Element Poor Boron p",
+					"position": 12,
+					"name": "Ununtrium",
+					"number": 113,
+					"small": "Uut",
+					"molar": 284,
+					"electrons": [
+						2,
+						8,
+						18,
+						32,
+						32,
+						18,
+						3
+					]
+				},
+				{
+					"group": "Element Poor Carbon p",
+					"position": 13,
+					"name": "Flerovium",
+					"number": 114,
+					"small": "Fl",
+					"molar": 289,
+					"electrons": [
+						2,
+						8,
+						18,
+						32,
+						32,
+						18,
+						4
+					]
+				},
+				{
+					"group": "Element Poor Pnictogen p",
+					"position": 14,
+					"name": "Ununpentium",
+					"number": 115,
+					"small": "Uup",
+					"molar": 288,
+					"electrons": [
+						2,
+						8,
+						18,
+						32,
+						32,
+						18,
+						5
+					]
+				},
+				{
+					"group": "Element Poor Chalcogen p",
+					"position": 15,
+					"name": "Livermorium",
+					"number": 116,
+					"small": "Lv",
+					"molar": 293,
+					"electrons": [
+						2,
+						8,
+						18,
+						32,
+						32,
+						18,
+						6
+					]
+				},
+				{
+					"group": "Element Halogen p",
+					"position": 16,
+					"name": "Ununseptium",
+					"number": 117,
+					"small": "Uus",
+					"molar": 294,
+					"electrons": [
+						2,
+						8,
+						18,
+						32,
+						32,
+						18,
+						7
+					]
+				},
+				{
+					"group": "Element Noble p",
+					"position": 17,
+					"name": "Ununoctium",
+					"number": 118,
+					"small": "Uuo",
+					"molar": 294,
+					"electrons": [
+						2,
+						8,
+						18,
+						32,
+						32,
+						18,
+						8
+					]
+				}
+			]
+		}
+	],
+	"lanthanoids": [
+		{
+			"group": "Element Lanthanoid f",
+			"position": 2,
+			"name": "Lanthanum",
+			"number": 57,
+			"small": "La",
+			"molar": 138.90547,
+			"electrons": [
+				2,
+				8,
+				18,
+				18,
+				9,
+				2
+			]
+		},
+		{
+			"group": "Element Lanthanoid f",
+			"position": 3,
+			"name": "Cerium",
+			"number": 58,
+			"small": "Ce",
+			"molar": 140.116,
+			"electrons": [
+				2,
+				8,
+				18,
+				19,
+				9,
+				2
+			]
+		},
+		{
+			"group": "Element Lanthanoid f",
+			"position": 4,
+			"name": "Praseodymium",
+			"number": 59,
+			"small": "Pr",
+			"molar": 140.90765,
+			"electrons": [
+				2,
+				8,
+				18,
+				21,
+				8,
+				2
+			]
+		},
+		{
+			"group": "Element Lanthanoid f",
+			"position": 5,
+			"name": "Neodymium",
+			"number": 60,
+			"small": "Nd",
+			"molar": 144.242,
+			"electrons": [
+				2,
+				8,
+				18,
+				22,
+				8,
+				2
+			]
+		},
+		{
+			"group": "Element Lanthanoid f",
+			"position": 6,
+			"name": "Promethium",
+			"number": 61,
+			"small": "Pm",
+			"molar": 145,
+			"electrons": [
+				2,
+				8,
+				18,
+				23,
+				8,
+				2
+			]
+		},
+		{
+			"group": "Element Lanthanoid f",
+			"position": 7,
+			"name": "Samarium",
+			"number": 62,
+			"small": "Sm",
+			"molar": 150.36,
+			"electrons": [
+				2,
+				8,
+				18,
+				24,
+				8,
+				2
+			]
+		},
+		{
+			"group": "Element Lanthanoid f",
+			"position": 8,
+			"name": "Europium",
+			"number": 63,
+			"small": "Eu",
+			"molar": 151.964,
+			"electrons": [
+				2,
+				8,
+				18,
+				25,
+				8,
+				2
+			]
+		},
+		{
+			"group": "Element Lanthanoid f",
+			"position": 9,
+			"name": "Gadolinium",
+			"number": 64,
+			"small": "Gd",
+			"molar": 157.25,
+			"electrons": [
+				2,
+				8,
+				18,
+				25,
+				9,
+				2
+			]
+		},
+		{
+			"group": "Element Lanthanoid f",
+			"position": 10,
+			"name": "Terbium",
+			"number": 65,
+			"small": "Tb",
+			"molar": 158.92535,
+			"electrons": [
+				2,
+				8,
+				18,
+				27,
+				8,
+				2
+			]
+		},
+		{
+			"group": "Element Lanthanoid f",
+			"position": 11,
+			"name": "Dysprosium",
+			"number": 66,
+			"small": "Dy",
+			"molar": 162.5,
+			"electrons": [
+				2,
+				8,
+				18,
+				28,
+				8,
+				2
+			]
+		},
+		{
+			"group": "Element Lanthanoid f",
+			"position": 12,
+			"name": "Holmium",
+			"number": 67,
+			"small": "Ho",
+			"molar": 164.93031,
+			"electrons": [
+				2,
+				8,
+				18,
+				29,
+				8,
+				2
+			]
+		},
+		{
+			"group": "Element Lanthanoid f",
+			"position": 13,
+			"name": "Erbium",
+			"number": 68,
+			"small": "Er",
+			"molar": 167.259,
+			"electrons": [
+				2,
+				8,
+				18,
+				30,
+				8,
+				2
+			]
+		},
+		{
+			"group": "Element Lanthanoid f",
+			"position": 14,
+			"name": "Thulium",
+			"number": 69,
+			"small": "Tm",
+			"molar": 168.9342,
+			"electrons": [
+				2,
+				8,
+				18,
+				31,
+				8,
+				2
+			]
+		},
+		{
+			"group": "Element Lanthanoid f",
+			"position": 15,
+			"name": "Ytterbium",
+			"number": 70,
+			"small": "Yb",
+			"molar": 173.054,
+			"electrons": [
+				2,
+				8,
+				18,
+				32,
+				8,
+				2
+			]
+		},
+		{
+			"group": "Element Lanthanoid d",
+			"position": 16,
+			"name": "Lutetium",
+			"number": 71,
+			"small": "Lu",
+			"molar": 174.9668,
+			"electrons": [
+				2,
+				8,
+				18,
+				32,
+				9,
+				2
+			]
+		}
+	],
+	"actinoids": [
+		{
+			"group": "Element Actinoid f",
+			"position": 2,
+			"name": "Actinium",
+			"number": 89,
+			"small": "Ac",
+			"molar": 227,
+			"electrons": [
+				2,
+				8,
+				18,
+				32,
+				18,
+				9,
+				2
+			]
+		},
+		{
+			"group": "Element Actinoid f",
+			"position": 3,
+			"name": "Thorium",
+			"number": 90,
+			"small": "Th",
+			"molar": 232.03806,
+			"electrons": [
+				2,
+				8,
+				18,
+				32,
+				18,
+				10,
+				2
+			]
+		},
+		{
+			"group": "Element Actinoid f",
+			"position": 4,
+			"name": "Protactinium",
+			"number": 91,
+			"small": "Pa",
+			"molar": 231.03587,
+			"electrons": [
+				2,
+				8,
+				18,
+				32,
+				20,
+				9,
+				2
+			]
+		},
+		{
+			"group": "Element Actinoid f",
+			"position": 5,
+			"name": "Uranium",
+			"number": 92,
+			"small": "U",
+			"molar": 238.02892,
+			"electrons": [
+				2,
+				8,
+				18,
+				32,
+				21,
+				9,
+				2
+			]
+		},
+		{
+			"group": "Element Actinoid f",
+			"position": 6,
+			"name": "Neptunium",
+			"number": 93,
+			"small": "Np",
+			"molar": 237,
+			"electrons": [
+				2,
+				8,
+				18,
+				32,
+				22,
+				9,
+				2
+			]
+		},
+		{
+			"group": "Element Actinoid f",
+			"position": 7,
+			"name": "Plutonium",
+			"number": 94,
+			"small": "Pu",
+			"molar": 244,
+			"electrons": [
+				2,
+				8,
+				18,
+				32,
+				24,
+				8,
+				2
+			]
+		},
+		{
+			"group": "Element Actinoid f",
+			"position": 8,
+			"name": "Americium",
+			"number": 95,
+			"small": "Am",
+			"molar": 243,
+			"electrons": [
+				2,
+				8,
+				18,
+				32,
+				25,
+				8,
+				2
+			]
+		},
+		{
+			"group": "Element Actinoid f",
+			"position": 9,
+			"name": "Curium",
+			"number": 96,
+			"small": "Cm",
+			"molar": 247,
+			"electrons": [
+				2,
+				8,
+				18,
+				32,
+				25,
+				9,
+				2
+			]
+		},
+		{
+			"group": "Element Actinoid f",
+			"position": 10,
+			"name": "Berkelium",
+			"number": 97,
+			"small": "Bk",
+			"molar": 247,
+			"electrons": [
+				2,
+				8,
+				18,
+				32,
+				27,
+				8,
+				2
+			]
+		},
+		{
+			"group": "Element Actinoid f",
+			"position": 11,
+			"name": "Californium",
+			"number": 98,
+			"small": "Cf",
+			"molar": 251,
+			"electrons": [
+				2,
+				8,
+				18,
+				32,
+				28,
+				8,
+				2
+			]
+		},
+		{
+			"group": "Element Actinoid f",
+			"position": 12,
+			"name": "Einsteinium",
+			"number": 99,
+			"small": "Es",
+			"molar": 252,
+			"electrons": [
+				2,
+				8,
+				18,
+				32,
+				29,
+				8,
+				2
+			]
+		},
+		{
+			"group": "Element Actinoid f",
+			"position": 13,
+			"name": "Fermium",
+			"number": 100,
+			"small": "Fm",
+			"molar": 257,
+			"electrons": [
+				2,
+				8,
+				18,
+				32,
+				30,
+				8,
+				2
+			]
+		},
+		{
+			"group": "Element Actinoid f",
+			"position": 14,
+			"name": "Mendelevium",
+			"number": 101,
+			"small": "Md",
+			"molar": 258,
+			"electrons": [
+				2,
+				8,
+				18,
+				32,
+				31,
+				8,
+				2
+			]
+		},
+		{
+			"group": "Element Actinoid f",
+			"position": 15,
+			"name": "Nobelium",
+			"number": 102,
+			"small": "No",
+			"molar": 259,
+			"electrons": [
+				2,
+				8,
+				18,
+				32,
+				32,
+				8,
+				2
+			]
+		},
+		{
+			"group": "Element Actinoid d",
+			"position": 16,
+			"name": "Lawrencium",
+			"number": 103,
+			"small": "Lr",
+			"molar": 262,
+			"electrons": [
+				2,
+				8,
+				18,
+				32,
+				32,
+				8,
+				3
+			]
+		}
+	]
+}

+ 32 - 0
src/main/java/eu/tankernn/periodictable/Element.java

@@ -0,0 +1,32 @@
+package eu.tankernn.periodictable;
+
+import org.json.*;
+
+public class Element extends Substance {
+	private final int atomicNumber;
+    private final String fullName;
+    private final int[] electrons;
+    
+    Element(int atomicNumber, String fullName, String smallName, double atomicMass, int[] electrons) {
+        super(smallName, atomicMass);
+    	this.atomicNumber = atomicNumber;
+        this.fullName = fullName;
+        this.electrons = electrons;
+    }
+
+    public int getAtomicNumber() {
+        return atomicNumber;
+    }
+
+    public String getFullName() {
+        return fullName;
+    }
+	
+	public String toString() {
+		return "Full name: " + this.fullName + "\n"
+				+ "Atomic number: " + this.atomicNumber + "\n"
+				+ "Short name: " + this.getSmallName() + "\n"
+				+ "Atomic mass: " + this.getMolarMass() + "\n"
+				+ "Electrons: " + new JSONArray(electrons).toString();
+	}
+}

+ 101 - 0
src/main/java/eu/tankernn/periodictable/PeriodicTable.java

@@ -0,0 +1,101 @@
+package eu.tankernn.periodictable;
+
+import java.io.FileNotFoundException;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Optional;
+import java.util.Scanner;
+
+public class PeriodicTable {
+	private static Map<String, Element> table = new HashMap<String, Element>();
+	
+	static Scanner in = new Scanner(System.in);
+	static boolean interrupt = false;
+	
+	public static void main(String[] args) {
+		System.out.println("How many decimals should be used for molarMass values?");
+		try {
+			table = TableLoader.loadData(in.nextInt());
+		} catch (FileNotFoundException e) {
+			e.printStackTrace();
+			return;
+		}
+		
+		System.out.println("Enter a command, alternatively the short name, full name or atomic number of any element.");
+		
+		while (!interrupt) {
+			try {
+				System.out.print(">");
+				executeCommand(in.nextLine());
+			} catch (Exception ex) {
+				System.out.println("There was an exception: " + ex.getMessage());
+				ex.printStackTrace();
+			}
+		}
+		in.close();
+	}
+	
+	static void executeCommand(String command) {
+		switch (command) {
+		case "molarMass":
+			System.out.println(new Substance(in.nextLine()).getMolarMass());
+			break;
+		case "info":
+			System.out.println(new Substance(in.nextLine()).getComponentListing());
+			break;
+		case "concentration":
+			System.out.println("Enter a chemical term for any substance, eg. 'NaCl': ");
+			Substance term = new Substance(in.nextLine());
+			
+			System.out.println("How many grams of " + term.getSmallName() + "?");
+			term.setMass(in.nextDouble());
+			Solution so = new Solution(term);
+			
+			System.out.println("What volume of water? (dm3)");
+			so.setVolume(in.nextDouble());
+			
+			System.out.println(so.getConcentration());
+			break;
+		case "help":
+			System.out.println("concentration: calculates concentration of a solutiuon." + "\n"
+							+ "molarMass: calculates molar mass of given substance." + "\n"
+							+ "exit: exits the program.");
+			break;
+		case "exit":
+			interrupt = true;
+			break;
+		default:
+			try {
+				System.out.println(getElement(command));
+			} catch (NullPointerException ex) {
+				System.out.println("No such command or element. Type 'help' for a list of commands.");
+			}
+			break;
+		}
+	}
+	
+	static Element getElement(String query) throws NullPointerException {
+		try {
+			if (table.get(query) != null)
+				return table.get(query);
+		} catch (NullPointerException ex) {
+			System.out.println("No element with short name " + query);
+		}
+		
+		Collection<Element> elements = table.values();
+		
+		Optional<Element> element = elements.stream().filter(e -> e.getFullName().equals(query)).findFirst();
+		
+		try {
+			int i = Integer.parseInt(query);
+			element = elements.stream().filter(e -> e.getAtomicNumber() == i).findFirst();
+		} catch (NumberFormatException ex) {
+		}
+		
+		if (element.isPresent())
+			return element.get();
+		else
+			throw new NullPointerException("The element " + query + " was not found.");
+	}
+}

+ 65 - 0
src/main/java/eu/tankernn/periodictable/Solution.java

@@ -0,0 +1,65 @@
+package eu.tankernn.periodictable;
+
+public class Solution {
+	
+	private Substance substance;
+	private double volume;
+	private double concentration;
+	
+	public Solution(Substance substance) {
+		this.substance = substance;
+	}
+	
+	public void setVolume(double volume) {
+		System.out.println("v=" + volume);
+		this.volume = volume;
+		this.concentration = calcConcentration();
+	}
+	
+	public void setConcentration(double concentration) {
+		System.out.println("c=" + concentration);
+		this.concentration = concentration;
+		this.volume = calcVolume();
+	}
+	
+	public Substance getSubstance() {
+		return substance;
+	}
+
+	public double getVolume() {
+		return volume;
+	}
+
+	public double getConcentration() {
+		return concentration;
+	}
+
+	private double calcVolume() {
+		double vol = substance.getQuantityOfSubstance() / concentration;
+		System.out.println("c=" + substance.getQuantityOfSubstance() + "/" + concentration + "=" + vol + "dm3");
+		return vol;
+	}
+
+	private double calcConcentration() {
+		double con = substance.getQuantityOfSubstance() / volume;
+		System.out.println("c=" + substance.getQuantityOfSubstance() + "/" + volume + "=" + con + "mol/dm3");
+		return con;
+	}
+	
+	public static Solution blend(Solution[] solutions) {
+		Solution blend = null;
+		
+		for (Solution solution : solutions) {
+			if (blend == null) {
+				blend = solution;
+			} else {
+				blend.substance.setQuantityOfSubstance(blend.substance.getQuantityOfSubstance() + solution.substance.getQuantityOfSubstance());
+				
+				blend.volume += solution.volume;
+			}
+		}
+		
+		return blend;
+	}
+	
+}

+ 156 - 0
src/main/java/eu/tankernn/periodictable/Substance.java

@@ -0,0 +1,156 @@
+package eu.tankernn.periodictable;
+
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.Map;
+import java.util.Map.Entry;
+
+public class Substance {
+	private double mass;
+	private double molarMass;
+    private final String smallName;
+    private double quantityOfSubstance;
+    
+    Map<Substance, Integer> components = new LinkedHashMap<Substance, Integer>();
+    
+	Substance(String elements) {
+		smallName = elements;
+		
+		String smallName = "";
+		Substance lastSubstance = null;
+		
+		for (int i = 0; i < elements.length(); i++) {
+			Character c = elements.charAt(i);
+			
+			if (Character.isDigit(c)) {
+				int counter;
+				for (counter = i; counter < elements.length(); counter++) {
+					if (!Character.isDigit(elements.charAt(counter)))
+						break;
+				}
+				int multiplier = Integer.parseInt(elements.substring(i, counter));
+				
+				if (lastSubstance != null)
+					components.put(lastSubstance, multiplier);
+				
+				lastSubstance = null;
+				smallName = "";
+				continue;
+			} else if (c.equals('(')) {
+				if (lastSubstance != null)
+					components.put(lastSubstance, 1);
+				
+				int counter;
+				for (counter = i; counter < elements.length(); counter++)
+					if (elements.charAt(counter) == ')')
+						break;
+				
+				lastSubstance = new Substance(elements.substring(i + 1, counter));
+				i = counter;
+			} else if (c.equals(')')) {
+				//Nothing
+			} else if (Character.isLowerCase(c)) {
+				smallName += c;
+				try {
+					lastSubstance = PeriodicTable.getElement(smallName);
+				} catch (NullPointerException ex) {
+					lastSubstance = null;
+				}
+			} else if (Character.isUpperCase(c)) {
+				if (lastSubstance != null)
+					components.put(lastSubstance, 1);
+				
+				smallName = c.toString();
+				try {
+					lastSubstance = PeriodicTable.getElement(smallName);
+				} catch (NullPointerException ex) {
+					lastSubstance = null;
+				}
+			}
+		}
+		
+		if (lastSubstance != null)
+			components.put(lastSubstance, 1);
+		
+		molarMass = calcMolarMass();
+	}
+	
+	Substance(Map<Substance, Integer> components) {
+		this.components = components;
+		this.molarMass = getMolarMass();
+		
+		String smallName = "";
+		Iterator<Entry<Substance, Integer>> it = components.entrySet().iterator();
+	    while (it.hasNext()) {
+	    	Entry<Substance, Integer> entry = it.next();
+	    	smallName += entry.getKey().smallName;
+	    	if (entry.getValue() > 1)
+	    		smallName += entry.getValue();
+	    }
+	    
+	    this.smallName = smallName;
+	}
+	
+	Substance(String smallName, double molarMass) {
+		this.smallName = smallName;
+		this.molarMass = molarMass;
+	}
+	
+	public void setMass(double mass) {
+		this.mass = mass;
+		this.quantityOfSubstance = calcQuantityOfSubstance();
+	}
+	
+	private double calcMass() {
+		return quantityOfSubstance * molarMass;
+	}
+	
+	private double calcMolarMass() {
+		double molarMass = 0;
+		
+		Iterator<Entry<Substance, Integer>> it = components.entrySet().iterator();
+	    while (it.hasNext()) {
+	    	Entry<Substance, Integer> entry = it.next();
+	    	
+	    	molarMass += entry.getKey().getMolarMass() * entry.getValue();
+	    }
+		
+		System.out.println("M(" + this.smallName + ")=" + molarMass + "g/mol");
+		return molarMass;
+	}
+	
+	public double getMolarMass() {
+        return molarMass;
+    }
+	
+	void setQuantityOfSubstance(double quantityOfSubstance) {
+		this.quantityOfSubstance = quantityOfSubstance;
+		this.mass = calcMass();
+	}
+	
+	private double calcQuantityOfSubstance() {
+		System.out.println("n=" + mass / molarMass + "mol");
+		return mass / molarMass;
+	}
+	
+	double getQuantityOfSubstance() {
+		return quantityOfSubstance;
+	}
+	
+	public String getSmallName() {
+		return smallName;
+	}
+	
+    public String getComponentListing() {
+    	String componentString = "";
+    	
+    	Iterator<Entry<Substance, Integer>> it = components.entrySet().iterator();
+	    while (it.hasNext()) {
+	    	Entry<Substance, Integer> entry = it.next();
+	    	
+	    	componentString += entry.getValue() + " atom(s) of: \n" + entry.getKey().toString() + "\n";
+	    }
+	    
+	    return componentString;
+    }
+}

+ 81 - 0
src/main/java/eu/tankernn/periodictable/TableLoader.java

@@ -0,0 +1,81 @@
+package eu.tankernn.periodictable;
+
+import java.io.BufferedReader;
+import java.io.FileNotFoundException;
+import java.io.InputStreamReader;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.net.URL;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.json.JSONArray;
+import org.json.JSONObject;
+
+public class TableLoader {
+	private static Map<String, Element> table = new HashMap<String, Element>();
+	private static int roundValue;
+	
+	static Map<String, Element> loadData(int roundValue) throws FileNotFoundException {
+		TableLoader.roundValue = roundValue;
+		
+		JSONObject obj = new JSONObject(readFile("/periodicTable.json"));
+		
+		for (String s: JSONObject.getNames(obj)) {
+			JSONArray arr = obj.getJSONArray(s);
+			if (s.equals("table"))
+				for (int j = 0; j < arr.length(); j++) {
+					loadElementsFromJSON(arr.getJSONObject(j).getJSONArray("elements"));
+				}
+			else
+				loadElementsFromJSON(arr);
+		}
+		return table;
+	}
+	
+	private static void loadElementsFromJSON(JSONArray elementarr) {
+		for (int i = 0; i < elementarr.length(); i++) {
+			JSONObject element = elementarr.getJSONObject(i);
+			
+			table.put(element.getString("small"), new Element(element.getInt("number"), element.getString("name"), element.getString("small"), round(element.getDouble("molar"), roundValue), getElectrons(element.getJSONArray("electrons"))));
+		}
+	}
+	
+	private static int[] getElectrons(JSONArray jsonArr) {
+		int[] electrons = new int[jsonArr.length()];
+		
+		for (int i = 0; i < jsonArr.length(); i++) {
+			electrons[i] = jsonArr.getInt(i);
+		}
+		
+		return electrons;
+	}
+	
+	private static String readFile(String filename) {
+		URL url = Class.class.getResource(filename);
+		
+		String result = "";
+		try {
+			BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream()));
+			StringBuilder sb = new StringBuilder();
+			String line = br.readLine();
+			while (line != null) {
+				sb.append(line);
+				line = br.readLine();
+			}
+			result = sb.toString();
+			br.close();
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+		return result;
+	}
+	
+	public static double round(double value, int places) {
+	    if (places < 0) throw new IllegalArgumentException();
+
+	    BigDecimal bd = new BigDecimal(value);
+	    bd = bd.setScale(places, RoundingMode.HALF_UP);
+	    return bd.doubleValue();
+	}
+}

+ 1 - 0
target/.gitignore

@@ -0,0 +1 @@
+/test-classes/

+ 1842 - 0
target/classes/periodicTable.json

@@ -0,0 +1,1842 @@
+{
+	"table": [
+		{
+			"wiki": "http://en.wikipedia.org/wiki/Period%201%20element",
+			"elements": [
+				{
+					"group": "",
+					"position": 0,
+					"name": "Hydrogen",
+					"number": 1,
+					"small": "H",
+					"molar": 1.00794,
+					"electrons": [
+						1
+					]
+				},
+				{
+					"group": "Element Noble p",
+					"position": 17,
+					"name": "Helium",
+					"number": 2,
+					"small": "He",
+					"molar": 4.002602,
+					"electrons": [
+						2
+					]
+				}
+			]
+		},
+		{
+			"wiki": "http://en.wikipedia.org/wiki/Period%202%20element",
+			"elements": [
+				{
+					"group": "Element Alkali s",
+					"position": 0,
+					"name": "Lithium",
+					"number": 3,
+					"small": "Li",
+					"molar": 6.941,
+					"electrons": [
+						2,
+						1
+					]
+				},
+				{
+					"group": "Element Alkaline s",
+					"position": 1,
+					"name": "Beryllium",
+					"number": 4,
+					"small": "Be",
+					"molar": 9.012182,
+					"electrons": [
+						2,
+						2
+					]
+				},
+				{
+					"group": "Element Metalloid Boron p",
+					"position": 12,
+					"name": "Boron",
+					"number": 5,
+					"small": "B",
+					"molar": 10.811,
+					"electrons": [
+						2,
+						3
+					]
+				},
+				{
+					"group": "Element Nonmetal Carbon p",
+					"position": 13,
+					"name": "Carbon",
+					"number": 6,
+					"small": "C",
+					"molar": 12.0107,
+					"electrons": [
+						2,
+						4
+					]
+				},
+				{
+					"group": "Element Nonmetal Pnictogen p",
+					"position": 14,
+					"name": "Nitrogen",
+					"number": 7,
+					"small": "N",
+					"molar": 14.0067,
+					"electrons": [
+						2,
+						5
+					]
+				},
+				{
+					"group": "Element Nonmetal Chalcogen p",
+					"position": 15,
+					"name": "Oxygen",
+					"number": 8,
+					"small": "O",
+					"molar": 15.9994,
+					"electrons": [
+						2,
+						6
+					]
+				},
+				{
+					"group": "Element Halogen p",
+					"position": 16,
+					"name": "Fluorine",
+					"number": 9,
+					"small": "F",
+					"molar": 18.998404,
+					"electrons": [
+						2,
+						7
+					]
+				},
+				{
+					"group": "Element Noble p",
+					"position": 17,
+					"name": "Neon",
+					"number": 10,
+					"small": "Ne",
+					"molar": 20.1797,
+					"electrons": [
+						2,
+						8
+					]
+				}
+			]
+		},
+		{
+			"wiki": "http://en.wikipedia.org/wiki/Period%203%20element",
+			"elements": [
+				{
+					"group": "Element Alkali s",
+					"position": 0,
+					"name": "Sodium",
+					"number": 11,
+					"small": "Na",
+					"molar": 22.989769,
+					"electrons": [
+						2,
+						8,
+						1
+					]
+				},
+				{
+					"group": "Element Alkaline s",
+					"position": 1,
+					"name": "Magnesium",
+					"number": 12,
+					"small": "Mg",
+					"molar": 24.305,
+					"electrons": [
+						2,
+						8,
+						2
+					]
+				},
+				{
+					"group": "Element Poor Boron p",
+					"position": 12,
+					"name": "Aluminium",
+					"number": 13,
+					"small": "Al",
+					"molar": 26.981539,
+					"electrons": [
+						2,
+						8,
+						3
+					]
+				},
+				{
+					"group": "Element Metalloid Carbon p",
+					"position": 13,
+					"name": "Silicon",
+					"number": 14,
+					"small": "Si",
+					"molar": 28.0855,
+					"electrons": [
+						2,
+						8,
+						4
+					]
+				},
+				{
+					"group": "Element Nonmetal Pnictogen p",
+					"position": 14,
+					"name": "Phosphorus",
+					"number": 15,
+					"small": "P",
+					"molar": 30.973763,
+					"electrons": [
+						2,
+						8,
+						5
+					]
+				},
+				{
+					"group": "Element Nonmetal Chalcogen p",
+					"position": 15,
+					"name": "Sulfur",
+					"number": 16,
+					"small": "S",
+					"molar": 32.065,
+					"electrons": [
+						2,
+						8,
+						6
+					]
+				},
+				{
+					"group": "Element Halogen p",
+					"position": 16,
+					"name": "Chlorine",
+					"number": 17,
+					"small": "Cl",
+					"molar": 35.453,
+					"electrons": [
+						2,
+						8,
+						7
+					]
+				},
+				{
+					"group": "Element Noble p",
+					"position": 17,
+					"name": "Argon",
+					"number": 18,
+					"small": "Ar",
+					"molar": 39.948,
+					"electrons": [
+						2,
+						8,
+						8
+					]
+				}
+			]
+		},
+		{
+			"wiki": "http://en.wikipedia.org/wiki/Period%204%20element",
+			"elements": [
+				{
+					"group": "Element Alkali s",
+					"position": 0,
+					"name": "Potassium",
+					"number": 19,
+					"small": "K",
+					"molar": 39.0983,
+					"electrons": [
+						2,
+						8,
+						8,
+						1
+					]
+				},
+				{
+					"group": "Element Alkaline s",
+					"position": 1,
+					"name": "Calcium",
+					"number": 20,
+					"small": "Ca",
+					"molar": 40.078,
+					"electrons": [
+						2,
+						8,
+						8,
+						2
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 2,
+					"name": "Scandium",
+					"number": 21,
+					"small": "Sc",
+					"molar": 44.955914,
+					"electrons": [
+						2,
+						8,
+						9,
+						2
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 3,
+					"name": "Titanium",
+					"number": 22,
+					"small": "Ti",
+					"molar": 47.867,
+					"electrons": [
+						2,
+						8,
+						10,
+						2
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 4,
+					"name": "Vanadium",
+					"number": 23,
+					"small": "V",
+					"molar": 50.9415,
+					"electrons": [
+						2,
+						8,
+						11,
+						2
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 5,
+					"name": "Chromium",
+					"number": 24,
+					"small": "Cr",
+					"molar": 51.9961,
+					"electrons": [
+						2,
+						8,
+						13,
+						1
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 6,
+					"name": "Manganese",
+					"number": 25,
+					"small": "Mn",
+					"molar": 54.938046,
+					"electrons": [
+						2,
+						8,
+						13,
+						2
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 7,
+					"name": "Iron",
+					"number": 26,
+					"small": "Fe",
+					"molar": 55.845,
+					"electrons": [
+						2,
+						8,
+						14,
+						2
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 8,
+					"name": "Cobalt",
+					"number": 27,
+					"small": "Co",
+					"molar": 58.933193,
+					"electrons": [
+						2,
+						8,
+						15,
+						2
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 9,
+					"name": "Nickel",
+					"number": 28,
+					"small": "Ni",
+					"molar": 58.6934,
+					"electrons": [
+						2,
+						8,
+						16,
+						2
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 10,
+					"name": "Copper",
+					"number": 29,
+					"small": "Cu",
+					"molar": 63.546,
+					"electrons": [
+						2,
+						8,
+						18,
+						1
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 11,
+					"name": "Zinc",
+					"number": 30,
+					"small": "Zn",
+					"molar": 65.38,
+					"electrons": [
+						2,
+						8,
+						18,
+						2
+					]
+				},
+				{
+					"group": "Element Poor Boron p",
+					"position": 12,
+					"name": "Gallium",
+					"number": 31,
+					"small": "Ga",
+					"molar": 69.723,
+					"electrons": [
+						2,
+						8,
+						18,
+						3
+					]
+				},
+				{
+					"group": "Element Metalloid Carbon p",
+					"position": 13,
+					"name": "Germanium",
+					"number": 32,
+					"small": "Ge",
+					"molar": 72.63,
+					"electrons": [
+						2,
+						8,
+						18,
+						4
+					]
+				},
+				{
+					"group": "Element Metalloid Pnictogen p",
+					"position": 14,
+					"name": "Arsenic",
+					"number": 33,
+					"small": "As",
+					"molar": 74.9216,
+					"electrons": [
+						2,
+						8,
+						18,
+						5
+					]
+				},
+				{
+					"group": "Element Nonmetal Chalcogen p",
+					"position": 15,
+					"name": "Selenium",
+					"number": 34,
+					"small": "Se",
+					"molar": 78.96,
+					"electrons": [
+						2,
+						8,
+						18,
+						6
+					]
+				},
+				{
+					"group": "Element Halogen p",
+					"position": 16,
+					"name": "Bromine",
+					"number": 35,
+					"small": "Br",
+					"molar": 79.904,
+					"electrons": [
+						2,
+						8,
+						18,
+						7
+					]
+				},
+				{
+					"group": "Element Noble p",
+					"position": 17,
+					"name": "Krypton",
+					"number": 36,
+					"small": "Kr",
+					"molar": 83.798,
+					"electrons": [
+						2,
+						8,
+						18,
+						8
+					]
+				}
+			]
+		},
+		{
+			"wiki": "http://en.wikipedia.org/wiki/Period%205%20element",
+			"elements": [
+				{
+					"group": "Element Alkali s",
+					"position": 0,
+					"name": "Rubidium",
+					"number": 37,
+					"small": "Rb",
+					"molar": 85.4678,
+					"electrons": [
+						2,
+						8,
+						18,
+						8,
+						1
+					]
+				},
+				{
+					"group": "Element Alkaline s",
+					"position": 1,
+					"name": "Strontium",
+					"number": 38,
+					"small": "Sr",
+					"molar": 87.62,
+					"electrons": [
+						2,
+						8,
+						18,
+						8,
+						2
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 2,
+					"name": "Yttrium",
+					"number": 39,
+					"small": "Y",
+					"molar": 88.90585,
+					"electrons": [
+						2,
+						8,
+						18,
+						9,
+						2
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 3,
+					"name": "Zirconium",
+					"number": 40,
+					"small": "Zr",
+					"molar": 91.224,
+					"electrons": [
+						2,
+						8,
+						18,
+						10,
+						2
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 4,
+					"name": "Niobium",
+					"number": 41,
+					"small": "Nb",
+					"molar": 92.90638,
+					"electrons": [
+						2,
+						8,
+						18,
+						12,
+						1
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 5,
+					"name": "Molybdenum",
+					"number": 42,
+					"small": "Mo",
+					"molar": 95.96,
+					"electrons": [
+						2,
+						8,
+						18,
+						13,
+						1
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 6,
+					"name": "Technetium",
+					"number": 43,
+					"small": "Tc",
+					"molar": 98,
+					"electrons": [
+						2,
+						8,
+						18,
+						13,
+						2
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 7,
+					"name": "Ruthenium",
+					"number": 44,
+					"small": "Ru",
+					"molar": 101.07,
+					"electrons": [
+						2,
+						8,
+						18,
+						15,
+						1
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 8,
+					"name": "Rhodium",
+					"number": 45,
+					"small": "Rh",
+					"molar": 102.9055,
+					"electrons": [
+						2,
+						8,
+						18,
+						16,
+						1
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 9,
+					"name": "Palladium",
+					"number": 46,
+					"small": "Pd",
+					"molar": 106.42,
+					"electrons": [
+						2,
+						8,
+						18,
+						18
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 10,
+					"name": "Silver",
+					"number": 47,
+					"small": "Ag",
+					"molar": 107.8682,
+					"electrons": [
+						2,
+						8,
+						18,
+						18,
+						1
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 11,
+					"name": "Cadmium",
+					"number": 48,
+					"small": "Cd",
+					"molar": 112.411,
+					"electrons": [
+						2,
+						8,
+						18,
+						18,
+						2
+					]
+				},
+				{
+					"group": "Element Poor Boron p",
+					"position": 12,
+					"name": "Indium",
+					"number": 49,
+					"small": "In",
+					"molar": 114.818,
+					"electrons": [
+						2,
+						8,
+						18,
+						18,
+						3
+					]
+				},
+				{
+					"group": "Element Poor Carbon p",
+					"position": 13,
+					"name": "Tin",
+					"number": 50,
+					"small": "Sn",
+					"molar": 118.71,
+					"electrons": [
+						2,
+						8,
+						18,
+						18,
+						4
+					]
+				},
+				{
+					"group": "Element Metalloid Pnictogen p",
+					"position": 14,
+					"name": "Antimony",
+					"number": 51,
+					"small": "Sb",
+					"molar": 121.76,
+					"electrons": [
+						2,
+						8,
+						18,
+						18,
+						5
+					]
+				},
+				{
+					"group": "Element Metalloid Chalcogen p",
+					"position": 15,
+					"name": "Tellurium",
+					"number": 52,
+					"small": "Te",
+					"molar": 127.6,
+					"electrons": [
+						2,
+						8,
+						18,
+						18,
+						6
+					]
+				},
+				{
+					"group": "Element Halogen p",
+					"position": 16,
+					"name": "Iodine",
+					"number": 53,
+					"small": "I",
+					"molar": 126.90447,
+					"electrons": [
+						2,
+						8,
+						18,
+						18,
+						7
+					]
+				},
+				{
+					"group": "Element Noble p",
+					"position": 17,
+					"name": "Xenon",
+					"number": 54,
+					"small": "Xe",
+					"molar": 131.293,
+					"electrons": [
+						2,
+						8,
+						18,
+						18,
+						8
+					]
+				}
+			]
+		},
+		{
+			"wiki": "http://en.wikipedia.org/wiki/Period%206%20element",
+			"elements": [
+				{
+					"group": "Element Alkali s",
+					"position": 0,
+					"name": "Caesium",
+					"number": 55,
+					"small": "Cs",
+					"molar": 132.90546,
+					"electrons": [
+						2,
+						8,
+						18,
+						18,
+						8,
+						1
+					]
+				},
+				{
+					"group": "Element Alkaline s",
+					"position": 1,
+					"name": "Barium",
+					"number": 56,
+					"small": "Ba",
+					"molar": 137.327,
+					"electrons": [
+						2,
+						8,
+						18,
+						18,
+						8,
+						2
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 3,
+					"name": "Hafnium",
+					"number": 72,
+					"small": "Hf",
+					"molar": 178.49,
+					"electrons": [
+						2,
+						8,
+						18,
+						32,
+						10,
+						2
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 4,
+					"name": "Tantalum",
+					"number": 73,
+					"small": "Ta",
+					"molar": 180.94788,
+					"electrons": [
+						2,
+						8,
+						18,
+						32,
+						11,
+						2
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 5,
+					"name": "Tungsten",
+					"number": 74,
+					"small": "W",
+					"molar": 183.84,
+					"electrons": [
+						2,
+						8,
+						18,
+						32,
+						12,
+						2
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 6,
+					"name": "Rhenium",
+					"number": 75,
+					"small": "Re",
+					"molar": 186.207,
+					"electrons": [
+						2,
+						8,
+						18,
+						32,
+						13,
+						2
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 7,
+					"name": "Osmium",
+					"number": 76,
+					"small": "Os",
+					"molar": 190.23,
+					"electrons": [
+						2,
+						8,
+						18,
+						32,
+						14,
+						2
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 8,
+					"name": "Iridium",
+					"number": 77,
+					"small": "Ir",
+					"molar": 192.217,
+					"electrons": [
+						2,
+						8,
+						18,
+						32,
+						15,
+						2
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 9,
+					"name": "Platinum",
+					"number": 78,
+					"small": "Pt",
+					"molar": 195.084,
+					"electrons": [
+						2,
+						8,
+						18,
+						32,
+						17,
+						1
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 10,
+					"name": "Gold",
+					"number": 79,
+					"small": "Au",
+					"molar": 196.96657,
+					"electrons": [
+						2,
+						8,
+						18,
+						32,
+						18,
+						1
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 11,
+					"name": "Mercury",
+					"number": 80,
+					"small": "Hg",
+					"molar": 200.59,
+					"electrons": [
+						2,
+						8,
+						18,
+						32,
+						18,
+						2
+					]
+				},
+				{
+					"group": "Element Poor Boron p",
+					"position": 12,
+					"name": "Thallium",
+					"number": 81,
+					"small": "Tl",
+					"molar": 204.3833,
+					"electrons": [
+						2,
+						8,
+						18,
+						32,
+						18,
+						3
+					]
+				},
+				{
+					"group": "Element Poor Carbon p",
+					"position": 13,
+					"name": "Lead",
+					"number": 82,
+					"small": "Pb",
+					"molar": 207.2,
+					"electrons": [
+						2,
+						8,
+						18,
+						32,
+						18,
+						4
+					]
+				},
+				{
+					"group": "Element Poor Pnictogen p",
+					"position": 14,
+					"name": "Bismuth",
+					"number": 83,
+					"small": "Bi",
+					"molar": 208.9804,
+					"electrons": [
+						2,
+						8,
+						18,
+						32,
+						18,
+						5
+					]
+				},
+				{
+					"group": "Element Metalloid Chalcogen p",
+					"position": 15,
+					"name": "Polonium",
+					"number": 84,
+					"small": "Po",
+					"molar": 209,
+					"electrons": [
+						2,
+						8,
+						18,
+						32,
+						18,
+						6
+					]
+				},
+				{
+					"group": "Element Halogen p",
+					"position": 16,
+					"name": "Astatine",
+					"number": 85,
+					"small": "At",
+					"molar": 210,
+					"electrons": [
+						2,
+						8,
+						18,
+						32,
+						18,
+						7
+					]
+				},
+				{
+					"group": "Element Noble p",
+					"position": 17,
+					"name": "Radon",
+					"number": 86,
+					"small": "Rn",
+					"molar": 222,
+					"electrons": [
+						2,
+						8,
+						18,
+						32,
+						18,
+						8
+					]
+				}
+			]
+		},
+		{
+			"wiki": "http://en.wikipedia.org/wiki/Period%207%20element",
+			"elements": [
+				{
+					"group": "Element Alkali s",
+					"position": 0,
+					"name": "Francium",
+					"number": 87,
+					"small": "Fr",
+					"molar": 223,
+					"electrons": [
+						2,
+						8,
+						18,
+						32,
+						18,
+						8,
+						1
+					]
+				},
+				{
+					"group": "Element Alkaline s",
+					"position": 1,
+					"name": "Radium",
+					"number": 88,
+					"small": "Ra",
+					"molar": 226,
+					"electrons": [
+						2,
+						8,
+						18,
+						32,
+						18,
+						8,
+						2
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 3,
+					"name": "Rutherfordium",
+					"number": 104,
+					"small": "Rf",
+					"molar": 267,
+					"electrons": [
+						2,
+						8,
+						18,
+						32,
+						32,
+						10,
+						2
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 4,
+					"name": "Dubnium",
+					"number": 105,
+					"small": "Db",
+					"molar": 268,
+					"electrons": [
+						2,
+						8,
+						18,
+						32,
+						32,
+						11,
+						2
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 5,
+					"name": "Seaborgium",
+					"number": 106,
+					"small": "Sg",
+					"molar": 271,
+					"electrons": [
+						2,
+						8,
+						18,
+						32,
+						32,
+						12,
+						2
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 6,
+					"name": "Bohrium",
+					"number": 107,
+					"small": "Bh",
+					"molar": 272,
+					"electrons": [
+						2,
+						8,
+						18,
+						32,
+						32,
+						13,
+						2
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 7,
+					"name": "Hassium",
+					"number": 108,
+					"small": "Hs",
+					"molar": 270,
+					"electrons": [
+						2,
+						8,
+						18,
+						32,
+						32,
+						14,
+						2
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 8,
+					"name": "Meitnerium",
+					"number": 109,
+					"small": "Mt",
+					"molar": 276,
+					"electrons": [
+						2,
+						8,
+						18,
+						32,
+						32,
+						15,
+						2
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 9,
+					"name": "Darmstadtium",
+					"number": 110,
+					"small": "Ds",
+					"molar": 281,
+					"electrons": [
+						2,
+						8,
+						18,
+						32,
+						32,
+						17,
+						1
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 10,
+					"name": "Roentgenium",
+					"number": 111,
+					"small": "Rg",
+					"molar": 280,
+					"electrons": [
+						2,
+						8,
+						18,
+						32,
+						32,
+						18,
+						1
+					]
+				},
+				{
+					"group": "Element Transition d",
+					"position": 11,
+					"name": "Copernicium",
+					"number": 112,
+					"small": "Cn",
+					"molar": 285,
+					"electrons": [
+						2,
+						8,
+						18,
+						32,
+						32,
+						18,
+						2
+					]
+				},
+				{
+					"group": "Element Poor Boron p",
+					"position": 12,
+					"name": "Ununtrium",
+					"number": 113,
+					"small": "Uut",
+					"molar": 284,
+					"electrons": [
+						2,
+						8,
+						18,
+						32,
+						32,
+						18,
+						3
+					]
+				},
+				{
+					"group": "Element Poor Carbon p",
+					"position": 13,
+					"name": "Flerovium",
+					"number": 114,
+					"small": "Fl",
+					"molar": 289,
+					"electrons": [
+						2,
+						8,
+						18,
+						32,
+						32,
+						18,
+						4
+					]
+				},
+				{
+					"group": "Element Poor Pnictogen p",
+					"position": 14,
+					"name": "Ununpentium",
+					"number": 115,
+					"small": "Uup",
+					"molar": 288,
+					"electrons": [
+						2,
+						8,
+						18,
+						32,
+						32,
+						18,
+						5
+					]
+				},
+				{
+					"group": "Element Poor Chalcogen p",
+					"position": 15,
+					"name": "Livermorium",
+					"number": 116,
+					"small": "Lv",
+					"molar": 293,
+					"electrons": [
+						2,
+						8,
+						18,
+						32,
+						32,
+						18,
+						6
+					]
+				},
+				{
+					"group": "Element Halogen p",
+					"position": 16,
+					"name": "Ununseptium",
+					"number": 117,
+					"small": "Uus",
+					"molar": 294,
+					"electrons": [
+						2,
+						8,
+						18,
+						32,
+						32,
+						18,
+						7
+					]
+				},
+				{
+					"group": "Element Noble p",
+					"position": 17,
+					"name": "Ununoctium",
+					"number": 118,
+					"small": "Uuo",
+					"molar": 294,
+					"electrons": [
+						2,
+						8,
+						18,
+						32,
+						32,
+						18,
+						8
+					]
+				}
+			]
+		}
+	],
+	"lanthanoids": [
+		{
+			"group": "Element Lanthanoid f",
+			"position": 2,
+			"name": "Lanthanum",
+			"number": 57,
+			"small": "La",
+			"molar": 138.90547,
+			"electrons": [
+				2,
+				8,
+				18,
+				18,
+				9,
+				2
+			]
+		},
+		{
+			"group": "Element Lanthanoid f",
+			"position": 3,
+			"name": "Cerium",
+			"number": 58,
+			"small": "Ce",
+			"molar": 140.116,
+			"electrons": [
+				2,
+				8,
+				18,
+				19,
+				9,
+				2
+			]
+		},
+		{
+			"group": "Element Lanthanoid f",
+			"position": 4,
+			"name": "Praseodymium",
+			"number": 59,
+			"small": "Pr",
+			"molar": 140.90765,
+			"electrons": [
+				2,
+				8,
+				18,
+				21,
+				8,
+				2
+			]
+		},
+		{
+			"group": "Element Lanthanoid f",
+			"position": 5,
+			"name": "Neodymium",
+			"number": 60,
+			"small": "Nd",
+			"molar": 144.242,
+			"electrons": [
+				2,
+				8,
+				18,
+				22,
+				8,
+				2
+			]
+		},
+		{
+			"group": "Element Lanthanoid f",
+			"position": 6,
+			"name": "Promethium",
+			"number": 61,
+			"small": "Pm",
+			"molar": 145,
+			"electrons": [
+				2,
+				8,
+				18,
+				23,
+				8,
+				2
+			]
+		},
+		{
+			"group": "Element Lanthanoid f",
+			"position": 7,
+			"name": "Samarium",
+			"number": 62,
+			"small": "Sm",
+			"molar": 150.36,
+			"electrons": [
+				2,
+				8,
+				18,
+				24,
+				8,
+				2
+			]
+		},
+		{
+			"group": "Element Lanthanoid f",
+			"position": 8,
+			"name": "Europium",
+			"number": 63,
+			"small": "Eu",
+			"molar": 151.964,
+			"electrons": [
+				2,
+				8,
+				18,
+				25,
+				8,
+				2
+			]
+		},
+		{
+			"group": "Element Lanthanoid f",
+			"position": 9,
+			"name": "Gadolinium",
+			"number": 64,
+			"small": "Gd",
+			"molar": 157.25,
+			"electrons": [
+				2,
+				8,
+				18,
+				25,
+				9,
+				2
+			]
+		},
+		{
+			"group": "Element Lanthanoid f",
+			"position": 10,
+			"name": "Terbium",
+			"number": 65,
+			"small": "Tb",
+			"molar": 158.92535,
+			"electrons": [
+				2,
+				8,
+				18,
+				27,
+				8,
+				2
+			]
+		},
+		{
+			"group": "Element Lanthanoid f",
+			"position": 11,
+			"name": "Dysprosium",
+			"number": 66,
+			"small": "Dy",
+			"molar": 162.5,
+			"electrons": [
+				2,
+				8,
+				18,
+				28,
+				8,
+				2
+			]
+		},
+		{
+			"group": "Element Lanthanoid f",
+			"position": 12,
+			"name": "Holmium",
+			"number": 67,
+			"small": "Ho",
+			"molar": 164.93031,
+			"electrons": [
+				2,
+				8,
+				18,
+				29,
+				8,
+				2
+			]
+		},
+		{
+			"group": "Element Lanthanoid f",
+			"position": 13,
+			"name": "Erbium",
+			"number": 68,
+			"small": "Er",
+			"molar": 167.259,
+			"electrons": [
+				2,
+				8,
+				18,
+				30,
+				8,
+				2
+			]
+		},
+		{
+			"group": "Element Lanthanoid f",
+			"position": 14,
+			"name": "Thulium",
+			"number": 69,
+			"small": "Tm",
+			"molar": 168.9342,
+			"electrons": [
+				2,
+				8,
+				18,
+				31,
+				8,
+				2
+			]
+		},
+		{
+			"group": "Element Lanthanoid f",
+			"position": 15,
+			"name": "Ytterbium",
+			"number": 70,
+			"small": "Yb",
+			"molar": 173.054,
+			"electrons": [
+				2,
+				8,
+				18,
+				32,
+				8,
+				2
+			]
+		},
+		{
+			"group": "Element Lanthanoid d",
+			"position": 16,
+			"name": "Lutetium",
+			"number": 71,
+			"small": "Lu",
+			"molar": 174.9668,
+			"electrons": [
+				2,
+				8,
+				18,
+				32,
+				9,
+				2
+			]
+		}
+	],
+	"actinoids": [
+		{
+			"group": "Element Actinoid f",
+			"position": 2,
+			"name": "Actinium",
+			"number": 89,
+			"small": "Ac",
+			"molar": 227,
+			"electrons": [
+				2,
+				8,
+				18,
+				32,
+				18,
+				9,
+				2
+			]
+		},
+		{
+			"group": "Element Actinoid f",
+			"position": 3,
+			"name": "Thorium",
+			"number": 90,
+			"small": "Th",
+			"molar": 232.03806,
+			"electrons": [
+				2,
+				8,
+				18,
+				32,
+				18,
+				10,
+				2
+			]
+		},
+		{
+			"group": "Element Actinoid f",
+			"position": 4,
+			"name": "Protactinium",
+			"number": 91,
+			"small": "Pa",
+			"molar": 231.03587,
+			"electrons": [
+				2,
+				8,
+				18,
+				32,
+				20,
+				9,
+				2
+			]
+		},
+		{
+			"group": "Element Actinoid f",
+			"position": 5,
+			"name": "Uranium",
+			"number": 92,
+			"small": "U",
+			"molar": 238.02892,
+			"electrons": [
+				2,
+				8,
+				18,
+				32,
+				21,
+				9,
+				2
+			]
+		},
+		{
+			"group": "Element Actinoid f",
+			"position": 6,
+			"name": "Neptunium",
+			"number": 93,
+			"small": "Np",
+			"molar": 237,
+			"electrons": [
+				2,
+				8,
+				18,
+				32,
+				22,
+				9,
+				2
+			]
+		},
+		{
+			"group": "Element Actinoid f",
+			"position": 7,
+			"name": "Plutonium",
+			"number": 94,
+			"small": "Pu",
+			"molar": 244,
+			"electrons": [
+				2,
+				8,
+				18,
+				32,
+				24,
+				8,
+				2
+			]
+		},
+		{
+			"group": "Element Actinoid f",
+			"position": 8,
+			"name": "Americium",
+			"number": 95,
+			"small": "Am",
+			"molar": 243,
+			"electrons": [
+				2,
+				8,
+				18,
+				32,
+				25,
+				8,
+				2
+			]
+		},
+		{
+			"group": "Element Actinoid f",
+			"position": 9,
+			"name": "Curium",
+			"number": 96,
+			"small": "Cm",
+			"molar": 247,
+			"electrons": [
+				2,
+				8,
+				18,
+				32,
+				25,
+				9,
+				2
+			]
+		},
+		{
+			"group": "Element Actinoid f",
+			"position": 10,
+			"name": "Berkelium",
+			"number": 97,
+			"small": "Bk",
+			"molar": 247,
+			"electrons": [
+				2,
+				8,
+				18,
+				32,
+				27,
+				8,
+				2
+			]
+		},
+		{
+			"group": "Element Actinoid f",
+			"position": 11,
+			"name": "Californium",
+			"number": 98,
+			"small": "Cf",
+			"molar": 251,
+			"electrons": [
+				2,
+				8,
+				18,
+				32,
+				28,
+				8,
+				2
+			]
+		},
+		{
+			"group": "Element Actinoid f",
+			"position": 12,
+			"name": "Einsteinium",
+			"number": 99,
+			"small": "Es",
+			"molar": 252,
+			"electrons": [
+				2,
+				8,
+				18,
+				32,
+				29,
+				8,
+				2
+			]
+		},
+		{
+			"group": "Element Actinoid f",
+			"position": 13,
+			"name": "Fermium",
+			"number": 100,
+			"small": "Fm",
+			"molar": 257,
+			"electrons": [
+				2,
+				8,
+				18,
+				32,
+				30,
+				8,
+				2
+			]
+		},
+		{
+			"group": "Element Actinoid f",
+			"position": 14,
+			"name": "Mendelevium",
+			"number": 101,
+			"small": "Md",
+			"molar": 258,
+			"electrons": [
+				2,
+				8,
+				18,
+				32,
+				31,
+				8,
+				2
+			]
+		},
+		{
+			"group": "Element Actinoid f",
+			"position": 15,
+			"name": "Nobelium",
+			"number": 102,
+			"small": "No",
+			"molar": 259,
+			"electrons": [
+				2,
+				8,
+				18,
+				32,
+				32,
+				8,
+				2
+			]
+		},
+		{
+			"group": "Element Actinoid d",
+			"position": 16,
+			"name": "Lawrencium",
+			"number": 103,
+			"small": "Lr",
+			"molar": 262,
+			"electrons": [
+				2,
+				8,
+				18,
+				32,
+				32,
+				8,
+				3
+			]
+		}
+	]
+}