Essential Modelling in Java.