Implement particles

Here you could use Guava's [`checkArgument`](http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/base/Preconditions.html#checkArgument(boolean,%20java.lang.Object))