JAREL is an application of Java for modelling hierarchical state machines / harel statecharts.  Hierarchical state machines / harel statecharts were originally pioneered by Prof. David Harel. JAREL is a general purpose framework for helping to build scalable and correct Java software. JAREL provides java building blocks and instructions for best use. JAREL supports a high level of type safety, up-front and lazy state instantiation, has built in dependency injection  and will aim to support diagram rendering in the near future (using DOT), as well as higher priority event interrupting.