Improvements to constructors and listener