added listeners impl and setVisable(true)