refactor : singleton layer
 fix : test on event