added more tests and segmented them across multiple files
made addListener private