Normally, active classes (threads) must also be reactive (have statecharts). However, you might have tasks that have no state memory. The workaround of defining a dummy (empty) statechart is not entirely acceptable because such an active object uses statechart behavior to process events. It is, however, possible to achieve the same effect by setting the class to active, defining an empty statechart, then overriding the default behavior by defining an operation named takeEvent() for the class and adding the wanted behavior to this operation. The advantage of this method is that you can benefit from visual debugging, for example, by using the event queue.