Changed from java 1.5 to 1.8

Set source to java 1.8, added better exception handling, added @Override
where missing