Added comments and cleaned up
Fixed problem with 'addAll()'
Working version with comments