Exploring RaphaelJS while building a graphical state machine editor