still memory leak
 cleanup when event pump exit or stop