IMplementado singleton y evetno propio