Update to SDK 1.0.0-M8.

The new operator enforces a class to be a concrete class and makes it widely open and it is not possible to make it an abstract class or an interfaces. To make the software changeable I don't use new.

The book Effective Java suggests to use `valueOf` or `of` as name for static factory methods. And for instantiating objects it is better to just have one name to look for, so even if there are no parameters there will be an `of` method without parameters. In Scala the static factory method is called `apply` even if it has no arguments.

Java 8 makes also use of `of` for example for the `Optional` class.