Keeping with some good coding standards - Code to Interfaces not implementations
Changed the use of ArrayList to List and HashMap to Map