Added constructors and listeners