Added listener code as well as Logger

public properties should be in pascal case