The third method (i.e. those of TASK EVENT) is somewhat different from the first two. Similar to the Queued messages, described above, they signal the occurrence of some event. However, as they are not queued, there is no information regarding how many such events occurred until being processed. An additional difference is that a TASK EVENT must address a specific TASK with a specific EVENT, thus requiring knowledge of the application structure. A TASK EVENT implementation is much more efficient than the previously mentioned communication methods, however it requires the TASK to be of type EXTENDED, which is not always possible or efficient. The downside of requiring knowledge of the application structure is balanced by the improved performance. Those are design decisions that should be made regarding a specific problem at hand. Examples and further discussion can be found in Structuring Language: Activity Chart Implementation.