A simple JavaScript workflow engine