<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -3,11 +3,17 @@
 #  last.fm-tagger
 #
 #  Created by Wes Rogers on 7/6/08.
-#  Copyright (c) 2008 __MyCompanyName__. All rights reserved.
+#  Copyright (c) 2008 633k.net. All rights reserved.
 #
 
 class AppController &lt; NSObject
+  ib_outlet :tagStatus
+  
   def windowWillClose(note)
     NSApp.terminate(self)
   end
+
+  def awakeFromNib
+    @tagStatus.setUsesThreadedAnimation(true)
+  end
 end</diff>
      <filename>AppController.rb</filename>
    </modified>
    <modified>
      <diff>@@ -3,7 +3,7 @@
 #  last.fm-tagger
 #
 #  Created by Wes Rogers on 7/5/08.
-#  Copyright (c) 2008 __MyCompanyName__. All rights reserved.
+#  Copyright (c) 2008 633k.net. All rights reserved.
 #
 
 require 'cgi'</diff>
      <filename>Artist.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 #
 #  ArtistsArray.rb
-#  last.fm-tagger2
+#  last.fm-tagger
 #
 #  Created by Wes Rogers on 7/5/08.
 #  Copyright (c) 2008 633k.net. All rights reserved.
@@ -9,13 +9,14 @@
 class ArtistsController &lt; NSArrayController
   ib_outlets :artistsTable, :playlistsController, :queryStatus
   ib_action :loadPlaylist
+  ib_action :reloadPlaylistData
   
   attr_accessor :artists
   attr_reader :tracks, :playlist
     
   def initialize
     @iTunes = SBApplication.applicationWithBundleIdentifier_(&quot;com.apple.iTunes&quot;)
-    @artists = []
+    @artists = NSArray.alloc.init
   end
   
   def loadPlaylist(sender)
@@ -33,6 +34,10 @@ class ArtistsController &lt; NSArrayController
     @queryStatus.stopAnimation(sender)
   end
   
+  def reloadPlaylistData(sender)
+    loadPlaylist(sender)
+  end
+  
   def updateGenre(genre)
     @artists[@artistsTable.selectedRow][1] = genre
     @artistsTable.reloadData</diff>
      <filename>ArtistsController.rb</filename>
    </modified>
    <modified>
      <diff></diff>
      <filename>English.lproj/InfoPlist.strings</filename>
    </modified>
    <modified>
      <diff>@@ -5,6 +5,11 @@
 	&lt;key&gt;IBClasses&lt;/key&gt;
 	&lt;array&gt;
 		&lt;dict&gt;
+			&lt;key&gt;ACTIONS&lt;/key&gt;
+			&lt;dict&gt;
+				&lt;key&gt;reloadPlaylists&lt;/key&gt;
+				&lt;string&gt;id&lt;/string&gt;
+			&lt;/dict&gt;
 			&lt;key&gt;CLASS&lt;/key&gt;
 			&lt;string&gt;PlaylistsController&lt;/string&gt;
 			&lt;key&gt;LANGUAGE&lt;/key&gt;
@@ -22,6 +27,8 @@
 			&lt;dict&gt;
 				&lt;key&gt;loadPlaylist&lt;/key&gt;
 				&lt;string&gt;id&lt;/string&gt;
+				&lt;key&gt;reloadPlaylistData&lt;/key&gt;
+				&lt;string&gt;id&lt;/string&gt;
 			&lt;/dict&gt;
 			&lt;key&gt;CLASS&lt;/key&gt;
 			&lt;string&gt;ArtistsController&lt;/string&gt;
@@ -89,8 +96,12 @@
 				&lt;string&gt;id&lt;/string&gt;
 				&lt;key&gt;queryStatus&lt;/key&gt;
 				&lt;string&gt;id&lt;/string&gt;
+				&lt;key&gt;statusLabel&lt;/key&gt;
+				&lt;string&gt;id&lt;/string&gt;
 				&lt;key&gt;tagStatus&lt;/key&gt;
 				&lt;string&gt;id&lt;/string&gt;
+				&lt;key&gt;taggedTracksCountLabel&lt;/key&gt;
+				&lt;string&gt;id&lt;/string&gt;
 				&lt;key&gt;tagsTable&lt;/key&gt;
 				&lt;string&gt;id&lt;/string&gt;
 			&lt;/dict&gt;
@@ -102,6 +113,11 @@
 			&lt;string&gt;AppController&lt;/string&gt;
 			&lt;key&gt;LANGUAGE&lt;/key&gt;
 			&lt;string&gt;ObjC&lt;/string&gt;
+			&lt;key&gt;OUTLETS&lt;/key&gt;
+			&lt;dict&gt;
+				&lt;key&gt;tagStatus&lt;/key&gt;
+				&lt;string&gt;id&lt;/string&gt;
+			&lt;/dict&gt;
 			&lt;key&gt;SUPERCLASS&lt;/key&gt;
 			&lt;string&gt;NSObject&lt;/string&gt;
 		&lt;/dict&gt;</diff>
      <filename>English.lproj/MainMenu.nib/classes.nib</filename>
    </modified>
    <modified>
      <diff>@@ -3,13 +3,14 @@
 &lt;plist version=&quot;1.0&quot;&gt;
 &lt;dict&gt;
 	&lt;key&gt;IBFramework Version&lt;/key&gt;
-	&lt;string&gt;629&lt;/string&gt;
+	&lt;string&gt;670&lt;/string&gt;
 	&lt;key&gt;IBLastKnownRelativeProjectPath&lt;/key&gt;
-	&lt;string&gt;../../last.fm-tagger.xcodeproj&lt;/string&gt;
+	&lt;string&gt;../last.fm-tagger.xcodeproj&lt;/string&gt;
 	&lt;key&gt;IBOldestOS&lt;/key&gt;
 	&lt;integer&gt;5&lt;/integer&gt;
 	&lt;key&gt;IBOpenObjects&lt;/key&gt;
 	&lt;array&gt;
+		&lt;integer&gt;2&lt;/integer&gt;
 		&lt;integer&gt;29&lt;/integer&gt;
 	&lt;/array&gt;
 	&lt;key&gt;IBSystem Version&lt;/key&gt;</diff>
      <filename>English.lproj/MainMenu.nib/info.nib</filename>
    </modified>
    <modified>
      <diff></diff>
      <filename>English.lproj/MainMenu.nib/keyedobjects.nib</filename>
    </modified>
    <modified>
      <diff>@@ -1,11 +1,11 @@
 &lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
-&lt;!DOCTYPE plist PUBLIC &quot;-//Apple Computer//DTD PLIST 1.0//EN&quot; &quot;http://www.apple.com/DTDs/PropertyList-1.0.dtd&quot;&gt;
+&lt;!DOCTYPE plist PUBLIC &quot;-//Apple//DTD PLIST 1.0//EN&quot; &quot;http://www.apple.com/DTDs/PropertyList-1.0.dtd&quot;&gt;
 &lt;plist version=&quot;1.0&quot;&gt;
 &lt;dict&gt;
 	&lt;key&gt;CFBundleDevelopmentRegion&lt;/key&gt;
 	&lt;string&gt;English&lt;/string&gt;
 	&lt;key&gt;CFBundleExecutable&lt;/key&gt;
-	&lt;string&gt;last.fm-tagger&lt;/string&gt;
+	&lt;string&gt;Last.fm Tagger&lt;/string&gt;
 	&lt;key&gt;CFBundleIconFile&lt;/key&gt;
 	&lt;string&gt;icon&lt;/string&gt;
 	&lt;key&gt;CFBundleInfoDictionaryVersion&lt;/key&gt;
@@ -23,8 +23,8 @@
 	&lt;key&gt;CFBundleIdentifier&lt;/key&gt;
 	&lt;string&gt;com.apple.rubycocoa.last.fm-taggerApp&lt;/string&gt;
 	&lt;key&gt;CFBundleShortVersionString&lt;/key&gt;
-	&lt;string&gt;1.1&lt;/string&gt;
-  &lt;key&gt;SUFeedURL&lt;/key&gt;
-  &lt;string&gt;http://633k.net/lastfmtagger/sparkle.xml&lt;/string&gt;
+	&lt;string&gt;1.2&lt;/string&gt;
+	&lt;key&gt;SUFeedURL&lt;/key&gt;
+	&lt;string&gt;http://633k.net/lastfmtagger/sparkle.xml&lt;/string&gt;
 &lt;/dict&gt;
 &lt;/plist&gt;</diff>
      <filename>Info.plist</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 #
 #  PlaylistsArray.rb
-#  last.fm-tagger2
+#  last.fm-tagger
 #
 #  Created by Wes Rogers on 7/5/08.
 #  Copyright (c) 2008 633k.net. All rights reserved.
@@ -8,6 +8,7 @@
 
 class PlaylistsController &lt; NSArrayController
   ib_outlets :playlistsPopUp
+  ib_action :reloadPlaylists
   
   def initialize
     @iTunes = SBApplication.applicationWithBundleIdentifier_(&quot;com.apple.iTunes&quot;)
@@ -16,4 +17,8 @@ class PlaylistsController &lt; NSArrayController
   def awakeFromNib
     @playlistsPopUp.addItemsWithTitles(@iTunes.sources.first.userPlaylists.reject { |p| p.smart == 1 }.map { |p| p.name })
   end
+  
+  def reloadPlaylists
+    @playlistsPopUp.addItemsWithTitles(@iTunes.sources.first.userPlaylists.reject { |p| p.smart == 1 }.map { |p| p.name })
+  end
 end</diff>
      <filename>PlaylistsController.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 #
 #  TagsArray.rb
-#  last.fm-tagger2
+#  last.fm-tagger
 #
 #  Created by Wes Rogers on 7/5/08.
 #  Copyright (c) 2008 633k.net. All rights reserved.
@@ -12,27 +12,27 @@ require 'rexml/document'
 include REXML
 
 class TagsController &lt; NSArrayController
-  ib_outlets :tagsTable, :artistsController, :artistsTable, :queryStatus, :tagStatus
+  ib_outlets :tagsTable, :artistsController, :artistsTable, :queryStatus, :tagStatus, :statusLabel, :taggedTracksCountLabel
   ib_action :tag
 
   def initialize
     #@tags = NSArray.alloc.init
-    @tags = []
+    #@tags = []
   end
   
-  def awakeFromNib
-    @tagStatus.setUsesThreadedAnimation(true)
-  end
-
   def tag(sender)
-    case NSRunAlertPanel(&quot;Confirm&quot;, &quot;Are you sure you want to overwrite this tag? It is irreversable, unless you remember it :P&quot;, 'OK', 'Cancel', nil)
+    tracks = @artistsController.tracks.select { |tr| tr.artist.to_s.strip.downcase == @artistsController.artists[@artistsTable.selectedRow][0].to_s.strip.downcase }
+    case NSRunAlertPanel(&quot;Confirm&quot;, &quot;Are you sure you want to overwrite this tag for #{tracks.length} tracks?&quot;, 'OK', 'Cancel', nil)
       when NSAlertDefaultReturn
-        tracks = @artistsController.tracks.select { |tr| tr.artist.to_s.strip.downcase == @artistsController.artists[@artistsTable.selectedRow][0].to_s.strip.downcase }
         @tagStatus.setMaxValue(tracks.length)
         NSLog(&quot;found #{tracks.length} tracks to tag&quot;)
-        tracks.each do |t|
+        tracks.each_with_index do |t, i|
           #unless t.artist.to_s.downcase != @artistsController.artists[@artistsTable.selectedRow][0].to_s.downcase
             NSLog(&quot;#{t.artist} = #{t.genre} = #{@tags[@tagsTable.selectedRow][0]}&quot;)
+            @statusLabel.setStringValue(&quot;Tagging #{t.name}&quot;)
+            @statusLabel.displayIfNeeded
+            @taggedTracksCountLabel.setStringValue(&quot;#{i}/#{tracks.length}&quot;)
+            @taggedTracksCountLabel.displayIfNeeded
             t.genre = @tags[@tagsTable.selectedRow][0]
             @tagStatus.incrementBy(1)
             @tagStatus.displayIfNeeded
@@ -40,6 +40,9 @@ class TagsController &lt; NSArrayController
             #NSLog(&quot;trying to update wrong artist!&quot;)
           #end
         end
+        @statusLabel.setStringValue('Done!')
+        @taggedTracksCountLabel.setStringValue(&quot;#{tracks.length}/#{tracks.length}&quot;)
+        #tracks.dealloc()
         @tagStatus.incrementBy(tracks.length * -1) # reset progress indicator
         @artistsController.updateGenre(@tags[@tagsTable.selectedRow][0])
         #@artistsController.loadPlaylist(sender)
@@ -50,15 +53,13 @@ class TagsController &lt; NSArrayController
   end
 
   def tableViewSelectionDidChange(note)
-    #@tags.release # free memory
-    #@tags = NSMutableArray.alloc.init
-    @tags.clear
     @queryStatus.startAnimation(note)
     url = &quot;http://ws.audioscrobbler.com/1.0/artist/#{Artist.new(@artistsController.artists[@artistsTable.selectedRow][0], nil).name.to_s}/toptags.xml&quot;
-    puts url.to_s
+    NSLog(&quot;Querying: #{url}&quot;)
     doc = Document.new(open(url.to_s))
+    @tags = NSMutableArray.alloc.init
     doc.root.elements.to_a(&quot;//tag&quot;).each do |tag|
-      @tags &lt;&lt; [tag.elements.to_a(&quot;name&quot;)[0].text, tag.elements.to_a(&quot;count&quot;)[0].text]
+      @tags.addObject(NSArray.arrayWithObjects(tag.elements.to_a(&quot;name&quot;)[0].text.to_s, tag.elements.to_a(&quot;count&quot;)[0].text.to_s, nil))
     end
     alert_no_tags_found if @tags.empty?
     #NSReleaseAlertPanel
@@ -68,13 +69,10 @@ class TagsController &lt; NSArrayController
     NSLog &quot;404!&quot;
     alert_no_tags_found
     @queryStatus.stopAnimation(note)
-    #@tags.release # free memory
-    #@tags = NSMutableArray.alloc.init
-    @tags.clear
   end
   
   def numberOfRowsInTableView(sender)
-    @tags.length
+    @tags.length if @tags
   end
 
   def tableView_objectValueForTableColumn_row(sender, col, row)</diff>
      <filename>TagsController.rb</filename>
    </modified>
    <modified>
      <diff>@@ -43,8 +43,8 @@
 		29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = &quot;&lt;group&gt;&quot;; };
 		29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = &quot;&lt;absolute&gt;&quot;; };
 		29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = &quot;&lt;absolute&gt;&quot;; };
-		4DDCA7110ACC9A6100E082CE /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = Info.plist; sourceTree = &quot;&lt;group&gt;&quot;; };
-		4DDCA7120ACC9A6100E082CE /* last.fm-tagger.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = &quot;last.fm-tagger.app&quot;; sourceTree = BUILT_PRODUCTS_DIR; };
+		4DDCA7110ACC9A6100E082CE /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = &quot;&lt;group&gt;&quot;; };
+		4DDCA7120ACC9A6100E082CE /* Last.fm Tagger.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = &quot;Last.fm Tagger.app&quot;; sourceTree = BUILT_PRODUCTS_DIR; };
 		DE2895FE0E20935600AC6717 /* AppController.rb */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.ruby; path = AppController.rb; sourceTree = &quot;&lt;group&gt;&quot;; };
 		DE2E42640E215B4300555291 /* Sparkle.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Sparkle.framework; sourceTree = &quot;&lt;group&gt;&quot;; };
 		DE5C8D220E2045E70075EA4B /* ArtistsController.rb */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.ruby; path = ArtistsController.rb; sourceTree = &quot;&lt;group&gt;&quot;; };
@@ -106,7 +106,7 @@
 		19C28FACFE9D520D11CA2CBB /* Products */ = {
 			isa = PBXGroup;
 			children = (
-				4DDCA7120ACC9A6100E082CE /* last.fm-tagger.app */,
+				4DDCA7120ACC9A6100E082CE /* Last.fm Tagger.app */,
 			);
 			name = Products;
 			sourceTree = &quot;&lt;group&gt;&quot;;
@@ -166,9 +166,9 @@
 /* End PBXHeadersBuildPhase section */
 
 /* Begin PBXNativeTarget section */
-		4DDCA7030ACC9A6100E082CE /* last.fm-tagger */ = {
+		4DDCA7030ACC9A6100E082CE /* Last.fm Tagger */ = {
 			isa = PBXNativeTarget;
-			buildConfigurationList = 4DDCA70E0ACC9A6100E082CE /* Build configuration list for PBXNativeTarget &quot;last.fm-tagger&quot; */;
+			buildConfigurationList = 4DDCA70E0ACC9A6100E082CE /* Build configuration list for PBXNativeTarget &quot;Last.fm Tagger&quot; */;
 			buildPhases = (
 				4DDCA7040ACC9A6100E082CE /* Headers */,
 				4DDCA7050ACC9A6100E082CE /* Resources */,
@@ -180,10 +180,10 @@
 			);
 			dependencies = (
 			);
-			name = &quot;last.fm-tagger&quot;;
+			name = &quot;Last.fm Tagger&quot;;
 			productInstallPath = &quot;$(HOME)/Applications&quot;;
 			productName = &quot;last.fm-tagger&quot;;
-			productReference = 4DDCA7120ACC9A6100E082CE /* last.fm-tagger.app */;
+			productReference = 4DDCA7120ACC9A6100E082CE /* Last.fm Tagger.app */;
 			productType = &quot;com.apple.product-type.application&quot;;
 		};
 /* End PBXNativeTarget section */
@@ -198,7 +198,7 @@
 			projectDirPath = &quot;&quot;;
 			projectRoot = &quot;&quot;;
 			targets = (
-				4DDCA7030ACC9A6100E082CE /* last.fm-tagger */,
+				4DDCA7030ACC9A6100E082CE /* Last.fm Tagger */,
 			);
 		};
 /* End PBXProject section */
@@ -305,7 +305,7 @@
 				GCC_MODEL_TUNING = G5;
 				INFOPLIST_FILE = Info.plist;
 				INSTALL_PATH = &quot;$(HOME)/Applications&quot;;
-				PRODUCT_NAME = &quot;last.fm-tagger&quot;;
+				PRODUCT_NAME = &quot;Last.fm Tagger&quot;;
 				WRAPPER_EXTENSION = app;
 			};
 			name = Release;
@@ -322,7 +322,7 @@
 			defaultConfigurationIsVisible = 0;
 			defaultConfigurationName = Release;
 		};
-		4DDCA70E0ACC9A6100E082CE /* Build configuration list for PBXNativeTarget &quot;last.fm-tagger&quot; */ = {
+		4DDCA70E0ACC9A6100E082CE /* Build configuration list for PBXNativeTarget &quot;Last.fm Tagger&quot; */ = {
 			isa = XCConfigurationList;
 			buildConfigurations = (
 				4DDCA70F0ACC9A6100E082CE /* Debug */,</diff>
      <filename>last.fm-tagger.xcodeproj/project.pbxproj</filename>
    </modified>
    <modified>
      <diff>@@ -270,20 +270,19 @@
 								&lt;string&gt;080E96DDFE201D6D7F000001&lt;/string&gt;
 								&lt;string&gt;29B97315FDCFA39411CA2CEA&lt;/string&gt;
 								&lt;string&gt;29B97317FDCFA39411CA2CEA&lt;/string&gt;
-								&lt;string&gt;29B97323FDCFA39411CA2CEA&lt;/string&gt;
-								&lt;string&gt;1058C7A0FEA54F0111CA2CBB&lt;/string&gt;
 								&lt;string&gt;19C28FACFE9D520D11CA2CBB&lt;/string&gt;
+								&lt;string&gt;1C37FBAC04509CD000000102&lt;/string&gt;
 							&lt;/array&gt;
 							&lt;key&gt;PBXSmartGroupTreeModuleOutlineStateSelectionKey&lt;/key&gt;
 							&lt;array&gt;
 								&lt;array&gt;
-									&lt;integer&gt;21&lt;/integer&gt;
-									&lt;integer&gt;20&lt;/integer&gt;
+									&lt;integer&gt;4&lt;/integer&gt;
+									&lt;integer&gt;2&lt;/integer&gt;
 									&lt;integer&gt;0&lt;/integer&gt;
 								&lt;/array&gt;
 							&lt;/array&gt;
 							&lt;key&gt;PBXSmartGroupTreeModuleOutlineStateVisibleRectKey&lt;/key&gt;
-							&lt;string&gt;{{0, 33}, {186, 528}}&lt;/string&gt;
+							&lt;string&gt;{{0, 0}, {186, 760}}&lt;/string&gt;
 						&lt;/dict&gt;
 						&lt;key&gt;PBXTopSmartGroupGIDs&lt;/key&gt;
 						&lt;array/&gt;
@@ -295,14 +294,14 @@
 					&lt;key&gt;GeometryConfiguration&lt;/key&gt;
 					&lt;dict&gt;
 						&lt;key&gt;Frame&lt;/key&gt;
-						&lt;string&gt;{{0, 0}, {203, 546}}&lt;/string&gt;
+						&lt;string&gt;{{0, 0}, {203, 778}}&lt;/string&gt;
 						&lt;key&gt;GroupTreeTableConfiguration&lt;/key&gt;
 						&lt;array&gt;
 							&lt;string&gt;MainColumn&lt;/string&gt;
 							&lt;real&gt;186&lt;/real&gt;
 						&lt;/array&gt;
 						&lt;key&gt;RubberWindowFrame&lt;/key&gt;
-						&lt;string&gt;603 106 844 587 0 0 1440 878 &lt;/string&gt;
+						&lt;string&gt;365 59 1069 819 0 0 1440 878 &lt;/string&gt;
 					&lt;/dict&gt;
 					&lt;key&gt;Module&lt;/key&gt;
 					&lt;string&gt;PBXSmartGroupTreeModule&lt;/string&gt;
@@ -320,7 +319,7 @@
 								&lt;key&gt;PBXProjectModuleGUID&lt;/key&gt;
 								&lt;string&gt;1CE0B20306471E060097A5F4&lt;/string&gt;
 								&lt;key&gt;PBXProjectModuleLabel&lt;/key&gt;
-								&lt;string&gt;TagsController.rb&lt;/string&gt;
+								&lt;string&gt;PlaylistsController.rb&lt;/string&gt;
 								&lt;key&gt;PBXSplitModuleInNavigatorKey&lt;/key&gt;
 								&lt;dict&gt;
 									&lt;key&gt;Split0&lt;/key&gt;
@@ -328,22 +327,23 @@
 										&lt;key&gt;PBXProjectModuleGUID&lt;/key&gt;
 										&lt;string&gt;1CE0B20406471E060097A5F4&lt;/string&gt;
 										&lt;key&gt;PBXProjectModuleLabel&lt;/key&gt;
-										&lt;string&gt;TagsController.rb&lt;/string&gt;
+										&lt;string&gt;PlaylistsController.rb&lt;/string&gt;
 										&lt;key&gt;_historyCapacity&lt;/key&gt;
 										&lt;integer&gt;0&lt;/integer&gt;
 										&lt;key&gt;bookmark&lt;/key&gt;
-										&lt;string&gt;DE2829CB0E21678B00383FCC&lt;/string&gt;
+										&lt;string&gt;DE44776A0E5CDF7800EFCE2C&lt;/string&gt;
 										&lt;key&gt;history&lt;/key&gt;
 										&lt;array&gt;
-											&lt;string&gt;DE5C8D630E204B3C0075EA4B&lt;/string&gt;
 											&lt;string&gt;DE5C8D7C0E204D5C0075EA4B&lt;/string&gt;
-											&lt;string&gt;DEBF38CA0E211F59006383C2&lt;/string&gt;
-											&lt;string&gt;DEB0439E0E21204E0086A6C4&lt;/string&gt;
-											&lt;string&gt;DEB043F30E21380E0086A6C4&lt;/string&gt;
-											&lt;string&gt;DEB044290E214E160086A6C4&lt;/string&gt;
-											&lt;string&gt;DEB044350E214FEE0086A6C4&lt;/string&gt;
-											&lt;string&gt;DE2829BB0E2166BB00383FCC&lt;/string&gt;
-											&lt;string&gt;DE2829BC0E2166BB00383FCC&lt;/string&gt;
+											&lt;string&gt;DE44771F0E5CDD2900EFCE2C&lt;/string&gt;
+											&lt;string&gt;DE44772C0E5CDD8F00EFCE2C&lt;/string&gt;
+											&lt;string&gt;DE44772D0E5CDD8F00EFCE2C&lt;/string&gt;
+											&lt;string&gt;DE44774C0E5CDE9700EFCE2C&lt;/string&gt;
+											&lt;string&gt;DE44774D0E5CDE9700EFCE2C&lt;/string&gt;
+											&lt;string&gt;DE44774F0E5CDE9700EFCE2C&lt;/string&gt;
+											&lt;string&gt;DE4477500E5CDE9700EFCE2C&lt;/string&gt;
+											&lt;string&gt;DE4477620E5CDF4A00EFCE2C&lt;/string&gt;
+											&lt;string&gt;DE4477630E5CDF4A00EFCE2C&lt;/string&gt;
 										&lt;/array&gt;
 										&lt;key&gt;prevStack&lt;/key&gt;
 										&lt;array&gt;
@@ -356,7 +356,22 @@
 											&lt;string&gt;DE5C8D700E204B3C0075EA4B&lt;/string&gt;
 											&lt;string&gt;DE5C8DD00E2062FD0075EA4B&lt;/string&gt;
 											&lt;string&gt;DE28960C0E2093EF00AC6717&lt;/string&gt;
-											&lt;string&gt;DE2829BD0E2166BB00383FCC&lt;/string&gt;
+											&lt;string&gt;DEED32420E3B827200C83C49&lt;/string&gt;
+											&lt;string&gt;DE4477520E5CDE9700EFCE2C&lt;/string&gt;
+											&lt;string&gt;DE4477530E5CDE9700EFCE2C&lt;/string&gt;
+											&lt;string&gt;DE4477540E5CDE9700EFCE2C&lt;/string&gt;
+											&lt;string&gt;DE4477550E5CDE9700EFCE2C&lt;/string&gt;
+											&lt;string&gt;DE4477560E5CDE9700EFCE2C&lt;/string&gt;
+											&lt;string&gt;DE4477570E5CDE9700EFCE2C&lt;/string&gt;
+											&lt;string&gt;DE4477580E5CDE9700EFCE2C&lt;/string&gt;
+											&lt;string&gt;DE4477590E5CDE9700EFCE2C&lt;/string&gt;
+											&lt;string&gt;DE44775A0E5CDE9700EFCE2C&lt;/string&gt;
+											&lt;string&gt;DE44775B0E5CDE9700EFCE2C&lt;/string&gt;
+											&lt;string&gt;DE44775C0E5CDE9700EFCE2C&lt;/string&gt;
+											&lt;string&gt;DE44775D0E5CDE9700EFCE2C&lt;/string&gt;
+											&lt;string&gt;DE44775E0E5CDE9700EFCE2C&lt;/string&gt;
+											&lt;string&gt;DE44775F0E5CDE9700EFCE2C&lt;/string&gt;
+											&lt;string&gt;DE4477640E5CDF4A00EFCE2C&lt;/string&gt;
 										&lt;/array&gt;
 									&lt;/dict&gt;
 									&lt;key&gt;SplitCount&lt;/key&gt;
@@ -368,14 +383,14 @@
 							&lt;key&gt;GeometryConfiguration&lt;/key&gt;
 							&lt;dict&gt;
 								&lt;key&gt;Frame&lt;/key&gt;
-								&lt;string&gt;{{0, 0}, {636, 379}}&lt;/string&gt;
+								&lt;string&gt;{{0, 0}, {861, 773}}&lt;/string&gt;
 								&lt;key&gt;RubberWindowFrame&lt;/key&gt;
-								&lt;string&gt;603 106 844 587 0 0 1440 878 &lt;/string&gt;
+								&lt;string&gt;365 59 1069 819 0 0 1440 878 &lt;/string&gt;
 							&lt;/dict&gt;
 							&lt;key&gt;Module&lt;/key&gt;
 							&lt;string&gt;PBXNavigatorGroup&lt;/string&gt;
 							&lt;key&gt;Proportion&lt;/key&gt;
-							&lt;string&gt;379pt&lt;/string&gt;
+							&lt;string&gt;773pt&lt;/string&gt;
 						&lt;/dict&gt;
 						&lt;dict&gt;
 							&lt;key&gt;ContentConfiguration&lt;/key&gt;
@@ -388,18 +403,18 @@
 							&lt;key&gt;GeometryConfiguration&lt;/key&gt;
 							&lt;dict&gt;
 								&lt;key&gt;Frame&lt;/key&gt;
-								&lt;string&gt;{{0, 384}, {636, 162}}&lt;/string&gt;
+								&lt;string&gt;{{0, 778}, {861, 0}}&lt;/string&gt;
 								&lt;key&gt;RubberWindowFrame&lt;/key&gt;
-								&lt;string&gt;603 106 844 587 0 0 1440 878 &lt;/string&gt;
+								&lt;string&gt;365 59 1069 819 0 0 1440 878 &lt;/string&gt;
 							&lt;/dict&gt;
 							&lt;key&gt;Module&lt;/key&gt;
 							&lt;string&gt;XCDetailModule&lt;/string&gt;
 							&lt;key&gt;Proportion&lt;/key&gt;
-							&lt;string&gt;162pt&lt;/string&gt;
+							&lt;string&gt;0pt&lt;/string&gt;
 						&lt;/dict&gt;
 					&lt;/array&gt;
 					&lt;key&gt;Proportion&lt;/key&gt;
-					&lt;string&gt;636pt&lt;/string&gt;
+					&lt;string&gt;861pt&lt;/string&gt;
 				&lt;/dict&gt;
 			&lt;/array&gt;
 			&lt;key&gt;Name&lt;/key&gt;
@@ -414,9 +429,9 @@
 			&lt;/array&gt;
 			&lt;key&gt;TableOfContents&lt;/key&gt;
 			&lt;array&gt;
-				&lt;string&gt;DE2829B40E21649300383FCC&lt;/string&gt;
+				&lt;string&gt;DE4477390E5CDD9800EFCE2C&lt;/string&gt;
 				&lt;string&gt;1CE0B1FE06471DED0097A5F4&lt;/string&gt;
-				&lt;string&gt;DE2829B50E21649300383FCC&lt;/string&gt;
+				&lt;string&gt;DE44773A0E5CDD9800EFCE2C&lt;/string&gt;
 				&lt;string&gt;1CE0B20306471E060097A5F4&lt;/string&gt;
 				&lt;string&gt;1CE0B20506471E060097A5F4&lt;/string&gt;
 			&lt;/array&gt;
@@ -552,11 +567,11 @@
 	&lt;array&gt;
 		&lt;string&gt;1CD10A99069EF8BA00B06720&lt;/string&gt;
 		&lt;string&gt;DE5C8D360E2046A10075EA4B&lt;/string&gt;
-		&lt;string&gt;1C78EAAD065D492600B07095&lt;/string&gt;
 		&lt;string&gt;/Users/wes/Code/xcode/last.fm-tagger/last.fm-tagger.xcodeproj&lt;/string&gt;
+		&lt;string&gt;1C78EAAD065D492600B07095&lt;/string&gt;
 	&lt;/array&gt;
 	&lt;key&gt;WindowString&lt;/key&gt;
-	&lt;string&gt;603 106 844 587 0 0 1440 878 &lt;/string&gt;
+	&lt;string&gt;365 59 1069 819 0 0 1440 878 &lt;/string&gt;
 	&lt;key&gt;WindowToolsV3&lt;/key&gt;
 	&lt;array&gt;
 		&lt;dict&gt;
@@ -586,7 +601,7 @@
 								&lt;key&gt;Frame&lt;/key&gt;
 								&lt;string&gt;{{0, 0}, {500, 218}}&lt;/string&gt;
 								&lt;key&gt;RubberWindowFrame&lt;/key&gt;
-								&lt;string&gt;396 249 500 500 0 0 1440 878 &lt;/string&gt;
+								&lt;string&gt;262 156 500 500 0 0 1440 878 &lt;/string&gt;
 							&lt;/dict&gt;
 							&lt;key&gt;Module&lt;/key&gt;
 							&lt;string&gt;PBXNavigatorGroup&lt;/string&gt;
@@ -594,8 +609,6 @@
 							&lt;string&gt;218pt&lt;/string&gt;
 						&lt;/dict&gt;
 						&lt;dict&gt;
-							&lt;key&gt;BecomeActive&lt;/key&gt;
-							&lt;true/&gt;
 							&lt;key&gt;ContentConfiguration&lt;/key&gt;
 							&lt;dict&gt;
 								&lt;key&gt;PBXProjectModuleGUID&lt;/key&gt;
@@ -612,7 +625,7 @@
 								&lt;key&gt;Frame&lt;/key&gt;
 								&lt;string&gt;{{0, 223}, {500, 236}}&lt;/string&gt;
 								&lt;key&gt;RubberWindowFrame&lt;/key&gt;
-								&lt;string&gt;396 249 500 500 0 0 1440 878 &lt;/string&gt;
+								&lt;string&gt;262 156 500 500 0 0 1440 878 &lt;/string&gt;
 							&lt;/dict&gt;
 							&lt;key&gt;Module&lt;/key&gt;
 							&lt;string&gt;PBXBuildResultsModule&lt;/string&gt;
@@ -635,14 +648,14 @@
 			&lt;key&gt;TableOfContents&lt;/key&gt;
 			&lt;array&gt;
 				&lt;string&gt;DE5C8D360E2046A10075EA4B&lt;/string&gt;
-				&lt;string&gt;DE2829B60E21649300383FCC&lt;/string&gt;
+				&lt;string&gt;DE44773B0E5CDD9800EFCE2C&lt;/string&gt;
 				&lt;string&gt;1CD0528F0623707200166675&lt;/string&gt;
 				&lt;string&gt;XCMainBuildResultsModuleGUID&lt;/string&gt;
 			&lt;/array&gt;
 			&lt;key&gt;ToolbarConfiguration&lt;/key&gt;
 			&lt;string&gt;xcode.toolbar.config.buildV3&lt;/string&gt;
 			&lt;key&gt;WindowString&lt;/key&gt;
-			&lt;string&gt;396 249 500 500 0 0 1440 878 &lt;/string&gt;
+			&lt;string&gt;262 156 500 500 0 0 1440 878 &lt;/string&gt;
 			&lt;key&gt;WindowToolGUID&lt;/key&gt;
 			&lt;string&gt;DE5C8D360E2046A10075EA4B&lt;/string&gt;
 			&lt;key&gt;WindowToolIsVisible&lt;/key&gt;
@@ -729,10 +742,10 @@
 									&lt;key&gt;Frame&lt;/key&gt;
 									&lt;string&gt;{{316, 0}, {378, 203}}&lt;/string&gt;
 									&lt;key&gt;RubberWindowFrame&lt;/key&gt;
-									&lt;string&gt;396 327 694 422 0 0 1440 878 &lt;/string&gt;
+									&lt;string&gt;241 211 694 422 0 0 1440 878 &lt;/string&gt;
 								&lt;/dict&gt;
 								&lt;key&gt;RubberWindowFrame&lt;/key&gt;
-								&lt;string&gt;396 327 694 422 0 0 1440 878 &lt;/string&gt;
+								&lt;string&gt;241 211 694 422 0 0 1440 878 &lt;/string&gt;
 							&lt;/dict&gt;
 							&lt;key&gt;Module&lt;/key&gt;
 							&lt;string&gt;PBXDebugSessionModule&lt;/string&gt;
@@ -755,18 +768,18 @@
 			&lt;key&gt;TableOfContents&lt;/key&gt;
 			&lt;array&gt;
 				&lt;string&gt;1CD10A99069EF8BA00B06720&lt;/string&gt;
-				&lt;string&gt;DE2829C10E2166D600383FCC&lt;/string&gt;
+				&lt;string&gt;DE44773C0E5CDD9800EFCE2C&lt;/string&gt;
 				&lt;string&gt;1C162984064C10D400B95A72&lt;/string&gt;
-				&lt;string&gt;DE2829C20E2166D600383FCC&lt;/string&gt;
-				&lt;string&gt;DE2829C30E2166D600383FCC&lt;/string&gt;
-				&lt;string&gt;DE2829C40E2166D600383FCC&lt;/string&gt;
-				&lt;string&gt;DE2829C50E2166D600383FCC&lt;/string&gt;
-				&lt;string&gt;DE2829C60E2166D600383FCC&lt;/string&gt;
+				&lt;string&gt;DE44773D0E5CDD9800EFCE2C&lt;/string&gt;
+				&lt;string&gt;DE44773E0E5CDD9800EFCE2C&lt;/string&gt;
+				&lt;string&gt;DE44773F0E5CDD9800EFCE2C&lt;/string&gt;
+				&lt;string&gt;DE4477400E5CDD9800EFCE2C&lt;/string&gt;
+				&lt;string&gt;DE4477410E5CDD9800EFCE2C&lt;/string&gt;
 			&lt;/array&gt;
 			&lt;key&gt;ToolbarConfiguration&lt;/key&gt;
 			&lt;string&gt;xcode.toolbar.config.debugV3&lt;/string&gt;
 			&lt;key&gt;WindowString&lt;/key&gt;
-			&lt;string&gt;396 327 694 422 0 0 1440 878 &lt;/string&gt;
+			&lt;string&gt;241 211 694 422 0 0 1440 878 &lt;/string&gt;
 			&lt;key&gt;WindowToolGUID&lt;/key&gt;
 			&lt;string&gt;1CD10A99069EF8BA00B06720&lt;/string&gt;
 			&lt;key&gt;WindowToolIsVisible&lt;/key&gt;
@@ -894,7 +907,7 @@
 								&lt;key&gt;Frame&lt;/key&gt;
 								&lt;string&gt;{{0, 0}, {650, 209}}&lt;/string&gt;
 								&lt;key&gt;RubberWindowFrame&lt;/key&gt;
-								&lt;string&gt;778 61 650 250 0 0 1440 878 &lt;/string&gt;
+								&lt;string&gt;15 67 650 250 0 0 1440 878 &lt;/string&gt;
 							&lt;/dict&gt;
 							&lt;key&gt;Module&lt;/key&gt;
 							&lt;string&gt;PBXDebugCLIModule&lt;/string&gt;
@@ -917,13 +930,13 @@
 			&lt;key&gt;TableOfContents&lt;/key&gt;
 			&lt;array&gt;
 				&lt;string&gt;1C78EAAD065D492600B07095&lt;/string&gt;
-				&lt;string&gt;DE2829C70E2166D600383FCC&lt;/string&gt;
+				&lt;string&gt;DE4477420E5CDD9800EFCE2C&lt;/string&gt;
 				&lt;string&gt;1C78EAAC065D492600B07095&lt;/string&gt;
 			&lt;/array&gt;
 			&lt;key&gt;ToolbarConfiguration&lt;/key&gt;
 			&lt;string&gt;xcode.toolbar.config.consoleV3&lt;/string&gt;
 			&lt;key&gt;WindowString&lt;/key&gt;
-			&lt;string&gt;778 61 650 250 0 0 1440 878 &lt;/string&gt;
+			&lt;string&gt;15 67 650 250 0 0 1440 878 &lt;/string&gt;
 			&lt;key&gt;WindowToolGUID&lt;/key&gt;
 			&lt;string&gt;1C78EAAD065D492600B07095&lt;/string&gt;
 			&lt;key&gt;WindowToolIsVisible&lt;/key&gt;</diff>
      <filename>last.fm-tagger.xcodeproj/wes.mode1v3</filename>
    </modified>
    <modified>
      <diff>@@ -2,22 +2,21 @@
 {
 	089C165DFE840E0CC02AAC07 /* English */ = {
 		uiCtxt = {
-			sepNavIntBoundsRect = &quot;{{0, 0}, {575, 486}}&quot;;
-			sepNavSelRange = &quot;{213, 0}&quot;;
+			sepNavIntBoundsRect = &quot;{{0, 0}, {800, 509}}&quot;;
+			sepNavSelRange = &quot;{127, 0}&quot;;
 			sepNavVisRange = &quot;{0, 213}&quot;;
 		};
 	};
 	29B97313FDCFA39411CA2CEA /* Project object */ = {
-		activeArchitecture = i386;
 		activeBuildConfigurationName = Release;
-		activeExecutable = DE5C8D1E0E2045D30075EA4B /* last.fm-tagger */;
-		activeTarget = 4DDCA7030ACC9A6100E082CE /* last.fm-tagger */;
+		activeExecutable = DE5C8D1E0E2045D30075EA4B /* Last.fm Tagger */;
+		activeTarget = 4DDCA7030ACC9A6100E082CE /* Last.fm Tagger */;
 		addToTargets = (
-			4DDCA7030ACC9A6100E082CE /* last.fm-tagger */,
+			4DDCA7030ACC9A6100E082CE /* Last.fm Tagger */,
 		);
 		codeSenseManager = DE5C8D250E2045E80075EA4B /* Code sense */;
 		executables = (
-			DE5C8D1E0E2045D30075EA4B /* last.fm-tagger */,
+			DE5C8D1E0E2045D30075EA4B /* Last.fm Tagger */,
 		);
 		perUserDictionary = {
 			PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
@@ -25,7 +24,7 @@
 				PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
 				PBXFileTableDataSourceColumnWidthsKey = (
 					20,
-					397,
+					622,
 					20,
 					48,
 					43,
@@ -47,7 +46,7 @@
 				PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
 				PBXFileTableDataSourceColumnWidthsKey = (
 					20,
-					357,
+					582,
 					60,
 					20,
 					48,
@@ -64,23 +63,67 @@
 					PBXFileDataSource_Warnings_ColumnID,
 				);
 			};
-			PBXPerProjectTemplateStateSaveDate = 237069452;
-			PBXWorkspaceStateSaveDate = 237069452;
+			PBXPerProjectTemplateStateSaveDate = 240967062;
+			PBXWorkspaceStateSaveDate = 240967062;
 		};
 		perUserProjectItems = {
-			DE2829B30E21649300383FCC /* PBXTextBookmark */ = DE2829B30E21649300383FCC /* PBXTextBookmark */;
-			DE2829BB0E2166BB00383FCC /* PBXTextBookmark */ = DE2829BB0E2166BB00383FCC /* PBXTextBookmark */;
-			DE2829BC0E2166BB00383FCC /* PBXTextBookmark */ = DE2829BC0E2166BB00383FCC /* PBXTextBookmark */;
-			DE2829BD0E2166BB00383FCC /* PBXTextBookmark */ = DE2829BD0E2166BB00383FCC /* PBXTextBookmark */;
-			DE2829BE0E2166BB00383FCC /* PBXTextBookmark */ = DE2829BE0E2166BB00383FCC /* PBXTextBookmark */;
-			DE2829C80E21671100383FCC /* PBXTextBookmark */ = DE2829C80E21671100383FCC /* PBXTextBookmark */;
-			DE2829CB0E21678B00383FCC /* PBXTextBookmark */ = DE2829CB0E21678B00383FCC /* PBXTextBookmark */;
 			DE28960C0E2093EF00AC6717 = DE28960C0E2093EF00AC6717 /* PBXTextBookmark */;
-			DE2E42BC0E2161AD00555291 = DE2E42BC0E2161AD00555291 /* PBXTextBookmark */;
-			DE2E42BD0E2161AD00555291 = DE2E42BD0E2161AD00555291 /* PBXTextBookmark */;
-			DE2E42BE0E2161AD00555291 = DE2E42BE0E2161AD00555291 /* PBXTextBookmark */;
-			DE2E42CA0E21633000555291 = DE2E42CA0E21633000555291 /* PBXTextBookmark */;
-			DE5C8D630E204B3C0075EA4B = DE5C8D630E204B3C0075EA4B /* PBXTextBookmark */;
+			DE4476D00E5CD47B00EFCE2C = DE4476D00E5CD47B00EFCE2C /* PBXTextBookmark */;
+			DE4476D50E5CD4A900EFCE2C = DE4476D50E5CD4A900EFCE2C /* PBXTextBookmark */;
+			DE4476D60E5CD4A900EFCE2C = DE4476D60E5CD4A900EFCE2C /* PBXTextBookmark */;
+			DE4476D70E5CD4A900EFCE2C = DE4476D70E5CD4A900EFCE2C /* PBXTextBookmark */;
+			DE4476D80E5CD4A900EFCE2C = DE4476D80E5CD4A900EFCE2C /* PBXTextBookmark */;
+			DE4476E00E5CD73900EFCE2C = DE4476E00E5CD73900EFCE2C /* PBXTextBookmark */;
+			DE4476E10E5CD73900EFCE2C = DE4476E10E5CD73900EFCE2C /* PBXTextBookmark */;
+			DE4476E20E5CD73900EFCE2C = DE4476E20E5CD73900EFCE2C /* PBXTextBookmark */;
+			DE4476E30E5CD73900EFCE2C = DE4476E30E5CD73900EFCE2C /* PBXTextBookmark */;
+			DE4476E50E5CD73900EFCE2C = DE4476E50E5CD73900EFCE2C /* PBXTextBookmark */;
+			DE4476E60E5CD73900EFCE2C = DE4476E60E5CD73900EFCE2C /* PBXTextBookmark */;
+			DE4476E70E5CD73900EFCE2C = DE4476E70E5CD73900EFCE2C /* PBXTextBookmark */;
+			DE4476E80E5CD73900EFCE2C = DE4476E80E5CD73900EFCE2C /* PBXTextBookmark */;
+			DE4476E90E5CD73900EFCE2C = DE4476E90E5CD73900EFCE2C /* PBXTextBookmark */;
+			DE44771D0E5CDD2900EFCE2C = DE44771D0E5CDD2900EFCE2C /* PBXTextBookmark */;
+			DE44771F0E5CDD2900EFCE2C = DE44771F0E5CDD2900EFCE2C /* PBXTextBookmark */;
+			DE4477210E5CDD2900EFCE2C = DE4477210E5CDD2900EFCE2C /* PBXTextBookmark */;
+			DE4477220E5CDD2900EFCE2C = DE4477220E5CDD2900EFCE2C /* PlistBookmark */;
+			DE4477230E5CDD2900EFCE2C = DE4477230E5CDD2900EFCE2C /* PBXTextBookmark */;
+			DE4477240E5CDD2900EFCE2C = DE4477240E5CDD2900EFCE2C /* PBXTextBookmark */;
+			DE44772C0E5CDD8F00EFCE2C = DE44772C0E5CDD8F00EFCE2C /* PlistBookmark */;
+			DE44772D0E5CDD8F00EFCE2C = DE44772D0E5CDD8F00EFCE2C /* PBXTextBookmark */;
+			DE44772E0E5CDD8F00EFCE2C = DE44772E0E5CDD8F00EFCE2C /* PlistBookmark */;
+			DE44772F0E5CDD8F00EFCE2C = DE44772F0E5CDD8F00EFCE2C /* PBXTextBookmark */;
+			DE4477300E5CDD8F00EFCE2C = DE4477300E5CDD8F00EFCE2C /* PBXTextBookmark */;
+			DE4477370E5CDD9800EFCE2C /* PBXTextBookmark */ = DE4477370E5CDD9800EFCE2C /* PBXTextBookmark */;
+			DE4477380E5CDD9800EFCE2C /* PBXTextBookmark */ = DE4477380E5CDD9800EFCE2C /* PBXTextBookmark */;
+			DE44774C0E5CDE9700EFCE2C /* PBXTextBookmark */ = DE44774C0E5CDE9700EFCE2C /* PBXTextBookmark */;
+			DE44774D0E5CDE9700EFCE2C /* PBXTextBookmark */ = DE44774D0E5CDE9700EFCE2C /* PBXTextBookmark */;
+			DE44774E0E5CDE9700EFCE2C /* PBXTextBookmark */ = DE44774E0E5CDE9700EFCE2C /* PBXTextBookmark */;
+			DE44774F0E5CDE9700EFCE2C /* PBXTextBookmark */ = DE44774F0E5CDE9700EFCE2C /* PBXTextBookmark */;
+			DE4477500E5CDE9700EFCE2C /* PBXTextBookmark */ = DE4477500E5CDE9700EFCE2C /* PBXTextBookmark */;
+			DE4477510E5CDE9700EFCE2C /* PBXTextBookmark */ = DE4477510E5CDE9700EFCE2C /* PBXTextBookmark */;
+			DE4477520E5CDE9700EFCE2C /* PBXTextBookmark */ = DE4477520E5CDE9700EFCE2C /* PBXTextBookmark */;
+			DE4477530E5CDE9700EFCE2C /* PBXTextBookmark */ = DE4477530E5CDE9700EFCE2C /* PBXTextBookmark */;
+			DE4477540E5CDE9700EFCE2C /* PBXTextBookmark */ = DE4477540E5CDE9700EFCE2C /* PBXTextBookmark */;
+			DE4477550E5CDE9700EFCE2C /* PBXTextBookmark */ = DE4477550E5CDE9700EFCE2C /* PBXTextBookmark */;
+			DE4477560E5CDE9700EFCE2C /* PBXTextBookmark */ = DE4477560E5CDE9700EFCE2C /* PBXTextBookmark */;
+			DE4477570E5CDE9700EFCE2C /* PBXTextBookmark */ = DE4477570E5CDE9700EFCE2C /* PBXTextBookmark */;
+			DE4477580E5CDE9700EFCE2C /* PBXTextBookmark */ = DE4477580E5CDE9700EFCE2C /* PBXTextBookmark */;
+			DE4477590E5CDE9700EFCE2C /* PBXTextBookmark */ = DE4477590E5CDE9700EFCE2C /* PBXTextBookmark */;
+			DE44775A0E5CDE9700EFCE2C /* PBXTextBookmark */ = DE44775A0E5CDE9700EFCE2C /* PBXTextBookmark */;
+			DE44775B0E5CDE9700EFCE2C /* PBXTextBookmark */ = DE44775B0E5CDE9700EFCE2C /* PBXTextBookmark */;
+			DE44775C0E5CDE9700EFCE2C /* PBXTextBookmark */ = DE44775C0E5CDE9700EFCE2C /* PBXTextBookmark */;
+			DE44775D0E5CDE9700EFCE2C /* PBXTextBookmark */ = DE44775D0E5CDE9700EFCE2C /* PBXTextBookmark */;
+			DE44775E0E5CDE9700EFCE2C /* PBXTextBookmark */ = DE44775E0E5CDE9700EFCE2C /* PBXTextBookmark */;
+			DE44775F0E5CDE9700EFCE2C /* PBXTextBookmark */ = DE44775F0E5CDE9700EFCE2C /* PBXTextBookmark */;
+			DE4477600E5CDE9700EFCE2C /* PBXTextBookmark */ = DE4477600E5CDE9700EFCE2C /* PBXTextBookmark */;
+			DE4477610E5CDEAE00EFCE2C /* PBXTextBookmark */ = DE4477610E5CDEAE00EFCE2C /* PBXTextBookmark */;
+			DE4477620E5CDF4A00EFCE2C /* PBXTextBookmark */ = DE4477620E5CDF4A00EFCE2C /* PBXTextBookmark */;
+			DE4477630E5CDF4A00EFCE2C /* PBXTextBookmark */ = DE4477630E5CDF4A00EFCE2C /* PBXTextBookmark */;
+			DE4477640E5CDF4A00EFCE2C /* PBXTextBookmark */ = DE4477640E5CDF4A00EFCE2C /* PBXTextBookmark */;
+			DE4477650E5CDF4A00EFCE2C /* PBXTextBookmark */ = DE4477650E5CDF4A00EFCE2C /* PBXTextBookmark */;
+			DE4477670E5CDF6100EFCE2C /* PBXTextBookmark */ = DE4477670E5CDF6100EFCE2C /* PBXTextBookmark */;
+			DE4477680E5CDF7500EFCE2C /* PBXTextBookmark */ = DE4477680E5CDF7500EFCE2C /* PBXTextBookmark */;
+			DE44776A0E5CDF7800EFCE2C /* PBXTextBookmark */ = DE44776A0E5CDF7800EFCE2C /* PBXTextBookmark */;
 			DE5C8D660E204B3C0075EA4B = DE5C8D660E204B3C0075EA4B /* PBXTextBookmark */;
 			DE5C8D670E204B3C0075EA4B = DE5C8D670E204B3C0075EA4B /* PBXTextBookmark */;
 			DE5C8D690E204B3C0075EA4B = DE5C8D690E204B3C0075EA4B /* PBXBookmark */;
@@ -90,20 +133,24 @@
 			DE5C8D700E204B3C0075EA4B = DE5C8D700E204B3C0075EA4B /* PBXTextBookmark */;
 			DE5C8D7C0E204D5C0075EA4B = DE5C8D7C0E204D5C0075EA4B /* PBXBookmark */;
 			DE5C8DD00E2062FD0075EA4B = DE5C8DD00E2062FD0075EA4B /* PBXTextBookmark */;
-			DEB0439E0E21204E0086A6C4 = DEB0439E0E21204E0086A6C4 /* PBXTextBookmark */;
-			DEB043F30E21380E0086A6C4 = DEB043F30E21380E0086A6C4 /* PBXTextBookmark */;
-			DEB044290E214E160086A6C4 = DEB044290E214E160086A6C4 /* PBXTextBookmark */;
-			DEB044350E214FEE0086A6C4 = DEB044350E214FEE0086A6C4 /* PBXTextBookmark */;
-			DEBF38CA0E211F59006383C2 = DEBF38CA0E211F59006383C2 /* PBXTextBookmark */;
+			DEED323B0E3B827200C83C49 = DEED323B0E3B827200C83C49 /* PBXTextBookmark */;
+			DEED32420E3B827200C83C49 = DEED32420E3B827200C83C49 /* PBXTextBookmark */;
 		};
 		sourceControlManager = DE5C8D240E2045E80075EA4B /* Source Control */;
 		userBuildSettings = {
 		};
 	};
-	4DDCA7030ACC9A6100E082CE /* last.fm-tagger */ = {
+	29B97316FDCFA39411CA2CEA /* main.m */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = &quot;{{0, 0}, {800, 509}}&quot;;
+			sepNavSelRange = &quot;{0, 0}&quot;;
+			sepNavVisRange = &quot;{0, 287}&quot;;
+		};
+	};
+	4DDCA7030ACC9A6100E082CE /* Last.fm Tagger */ = {
 		activeExec = 0;
 		executables = (
-			DE5C8D1E0E2045D30075EA4B /* last.fm-tagger */,
+			DE5C8D1E0E2045D30075EA4B /* Last.fm Tagger */,
 		);
 	};
 	4DDCA7110ACC9A6100E082CE /* Info.plist */ = {
@@ -114,134 +161,588 @@
 			sepNavWindowFrame = &quot;{{15, 315}, {750, 558}}&quot;;
 		};
 	};
-	DE2829B30E21649300383FCC /* PBXTextBookmark */ = {
+	DE2895FE0E20935600AC6717 /* AppController.rb */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = &quot;{{0, 0}, {800, 741}}&quot;;
+			sepNavSelRange = &quot;{108, 0}&quot;;
+			sepNavVisRange = &quot;{0, 327}&quot;;
+		};
+	};
+	DE28960C0E2093EF00AC6717 /* PBXTextBookmark */ = {
 		isa = PBXTextBookmark;
-		fRef = 4DDCA7110ACC9A6100E082CE /* Info.plist */;
-		name = &quot;Info.plist: 16&quot;;
+		fRef = DE2895FE0E20935600AC6717 /* AppController.rb */;
+		name = &quot;AppController.rb: 11&quot;;
 		rLen = 0;
-		rLoc = 531;
+		rLoc = 223;
 		rType = 0;
-		vrLen = 755;
-		vrLoc = 180;
+		vrLen = 238;
+		vrLoc = 0;
 	};
-	DE2829BB0E2166BB00383FCC /* PBXTextBookmark */ = {
+	DE4476D00E5CD47B00EFCE2C /* PBXTextBookmark */ = {
 		isa = PBXTextBookmark;
-		fRef = 4DDCA7110ACC9A6100E082CE /* Info.plist */;
-		name = &quot;Info.plist: 16&quot;;
+		fRef = DE5C8D280E2045FF0075EA4B /* TagsController.rb */;
+		name = &quot;TagsController.rb: 23&quot;;
 		rLen = 0;
-		rLoc = 531;
+		rLoc = 447;
 		rType = 0;
-		vrLen = 755;
-		vrLoc = 180;
+		vrLen = 1655;
+		vrLoc = 176;
 	};
-	DE2829BC0E2166BB00383FCC /* PBXTextBookmark */ = {
+	DE4476D50E5CD4A900EFCE2C /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = DE2895FE0E20935600AC6717 /* AppController.rb */;
+		name = &quot;AppController.rb: 16&quot;;
+		rLen = 0;
+		rLoc = 322;
+		rType = 0;
+		vrLen = 310;
+		vrLoc = 0;
+	};
+	DE4476D60E5CD4A900EFCE2C /* PBXTextBookmark */ = {
 		isa = PBXTextBookmark;
 		fRef = DE5C8D280E2045FF0075EA4B /* TagsController.rb */;
-		name = &quot;TagsController.rb: 34&quot;;
+		name = &quot;TagsController.rb: 23&quot;;
 		rLen = 0;
-		rLoc = 1030;
+		rLoc = 447;
 		rType = 0;
-		vrLen = 1049;
-		vrLoc = 335;
+		vrLen = 1466;
+		vrLoc = 176;
 	};
-	DE2829BD0E2166BB00383FCC /* PBXTextBookmark */ = {
+	DE4476D70E5CD4A900EFCE2C /* PBXTextBookmark */ = {
 		isa = PBXTextBookmark;
-		fRef = 4DDCA7110ACC9A6100E082CE /* Info.plist */;
-		name = &quot;Info.plist: 16&quot;;
+		fRef = DE2895FE0E20935600AC6717 /* AppController.rb */;
+		name = &quot;AppController.rb: 16&quot;;
 		rLen = 0;
-		rLoc = 531;
+		rLoc = 322;
 		rType = 0;
-		vrLen = 755;
-		vrLoc = 180;
+		vrLen = 310;
+		vrLoc = 0;
 	};
-	DE2829BE0E2166BB00383FCC /* PBXTextBookmark */ = {
+	DE4476D80E5CD4A900EFCE2C /* PBXTextBookmark */ = {
 		isa = PBXTextBookmark;
 		fRef = DE5C8D280E2045FF0075EA4B /* TagsController.rb */;
-		name = &quot;TagsController.rb: 37&quot;;
+		name = &quot;TagsController.rb: 14&quot;;
 		rLen = 0;
-		rLoc = 1258;
+		rLoc = 230;
 		rType = 0;
-		vrLen = 1177;
-		vrLoc = 352;
+		vrLen = 1466;
+		vrLoc = 176;
 	};
-	DE2829C80E21671100383FCC /* PBXTextBookmark */ = {
+	DE4476E00E5CD73900EFCE2C /* PBXTextBookmark */ = {
 		isa = PBXTextBookmark;
-		fRef = DE5C8D280E2045FF0075EA4B /* TagsController.rb */;
-		name = &quot;TagsController.rb: 41&quot;;
+		fRef = DE2895FE0E20935600AC6717 /* AppController.rb */;
+		name = &quot;AppController.rb: 11&quot;;
 		rLen = 0;
-		rLoc = 1388;
+		rLoc = 190;
 		rType = 0;
-		vrLen = 1030;
-		vrLoc = 352;
+		vrLen = 336;
+		vrLoc = 0;
 	};
-	DE2829CB0E21678B00383FCC /* PBXTextBookmark */ = {
+	DE4476E10E5CD73900EFCE2C /* PBXTextBookmark */ = {
 		isa = PBXTextBookmark;
-		fRef = DE5C8D280E2045FF0075EA4B /* TagsController.rb */;
-		name = &quot;TagsController.rb: 30&quot;;
+		fRef = DE5C8D260E2045F60075EA4B /* PlaylistsController.rb */;
+		name = &quot;PlaylistsController.rb: 19&quot;;
 		rLen = 0;
-		rLoc = 847;
+		rLoc = 651;
 		rType = 0;
-		vrLen = 1156;
-		vrLoc = 399;
+		vrLen = 473;
+		vrLoc = 0;
 	};
-	DE2895FE0E20935600AC6717 /* AppController.rb */ = {
-		uiCtxt = {
-			sepNavIntBoundsRect = &quot;{{0, 0}, {575, 509}}&quot;;
-			sepNavSelRange = &quot;{234, 0}&quot;;
-			sepNavVisRange = &quot;{0, 238}&quot;;
-		};
+	DE4476E20E5CD73900EFCE2C /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = DE5C8D220E2045E70075EA4B /* ArtistsController.rb */;
+		name = &quot;ArtistsController.rb: 38&quot;;
+		rLen = 0;
+		rLoc = 1389;
+		rType = 0;
+		vrLen = 1466;
+		vrLoc = 40;
 	};
-	DE28960C0E2093EF00AC6717 /* PBXTextBookmark */ = {
+	DE4476E30E5CD73900EFCE2C /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = DE5C8DC90E2062610075EA4B /* Artist.rb */;
+		name = &quot;Artist.rb: 19&quot;;
+		rLen = 0;
+		rLoc = 300;
+		rType = 0;
+		vrLen = 394;
+		vrLoc = 0;
+	};
+	DE4476E50E5CD73900EFCE2C /* PBXTextBookmark */ = {
 		isa = PBXTextBookmark;
 		fRef = DE2895FE0E20935600AC6717 /* AppController.rb */;
 		name = &quot;AppController.rb: 11&quot;;
 		rLen = 0;
-		rLoc = 206;
+		rLoc = 190;
 		rType = 0;
-		vrLen = 238;
+		vrLen = 336;
 		vrLoc = 0;
 	};
-	DE2E42BC0E2161AD00555291 /* PBXTextBookmark */ = {
+	DE4476E60E5CD73900EFCE2C /* PBXTextBookmark */ = {
 		isa = PBXTextBookmark;
 		fRef = DE5C8D280E2045FF0075EA4B /* TagsController.rb */;
-		name = &quot;TagsController.rb: 34&quot;;
+		name = &quot;TagsController.rb: 19&quot;;
 		rLen = 0;
-		rLoc = 1030;
+		rLoc = 413;
 		rType = 0;
-		vrLen = 1049;
-		vrLoc = 335;
+		vrLen = 1471;
+		vrLoc = 131;
 	};
-	DE2E42BD0E2161AD00555291 /* PBXTextBookmark */ = {
+	DE4476E70E5CD73900EFCE2C /* PBXTextBookmark */ = {
 		isa = PBXTextBookmark;
-		fRef = 4DDCA7110ACC9A6100E082CE /* Info.plist */;
-		name = &quot;Info.plist: 28&quot;;
+		fRef = DE5C8D260E2045F60075EA4B /* PlaylistsController.rb */;
+		name = &quot;PlaylistsController.rb: 19&quot;;
+		rLen = 0;
+		rLoc = 651;
+		rType = 0;
+		vrLen = 473;
+		vrLoc = 0;
+	};
+	DE4476E80E5CD73900EFCE2C /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = DE5C8D220E2045E70075EA4B /* ArtistsController.rb */;
+		name = &quot;ArtistsController.rb: 38&quot;;
 		rLen = 0;
-		rLoc = 913;
+		rLoc = 1389;
 		rType = 0;
-		vrLen = 700;
-		vrLoc = 244;
+		vrLen = 1466;
+		vrLoc = 40;
 	};
-	DE2E42BE0E2161AD00555291 /* PBXTextBookmark */ = {
+	DE4476E90E5CD73900EFCE2C /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = DE5C8DC90E2062610075EA4B /* Artist.rb */;
+		name = &quot;Artist.rb: 19&quot;;
+		rLen = 0;
+		rLoc = 300;
+		rType = 0;
+		vrLen = 394;
+		vrLoc = 0;
+	};
+	DE44771D0E5CDD2900EFCE2C /* PBXTextBookmark */ = {
 		isa = PBXTextBookmark;
 		fRef = DE5C8D280E2045FF0075EA4B /* TagsController.rb */;
-		name = &quot;TagsController.rb: 34&quot;;
+		name = &quot;TagsController.rb: 29&quot;;
+		rLen = 0;
+		rLoc = 916;
+		rType = 0;
+		vrLen = 1823;
+		vrLoc = 175;
+	};
+	DE44771F0E5CDD2900EFCE2C /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = DE5C8D440E20471D0075EA4B /* README */;
+		name = &quot;README: 3&quot;;
+		rLen = 0;
+		rLoc = 109;
+		rType = 0;
+		vrLen = 109;
+		vrLoc = 0;
+	};
+	DE4477210E5CDD2900EFCE2C /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = DE5C8D280E2045FF0075EA4B /* TagsController.rb */;
+		name = &quot;TagsController.rb: 29&quot;;
+		rLen = 0;
+		rLoc = 916;
+		rType = 0;
+		vrLen = 1823;
+		vrLoc = 175;
+	};
+	DE4477220E5CDD2900EFCE2C /* PlistBookmark */ = {
+		isa = PlistBookmark;
+		fRef = 4DDCA7110ACC9A6100E082CE /* Info.plist */;
+		fallbackIsa = PBXBookmark;
+		isK = 0;
+		kPath = (
+			CFBundleIconFile,
+		);
+		name = &quot;/Users/wes/Code/xcode/last.fm-tagger/Info.plist&quot;;
+		rLen = 0;
+		rLoc = 2147483647;
+	};
+	DE4477230E5CDD2900EFCE2C /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 089C165DFE840E0CC02AAC07 /* English */;
+		name = &quot;InfoPlist.strings: 6&quot;;
 		rLen = 0;
-		rLoc = 1030;
+		rLoc = 213;
+		rType = 0;
+		vrLen = 213;
+		vrLoc = 0;
+	};
+	DE4477240E5CDD2900EFCE2C /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = DE5C8D440E20471D0075EA4B /* README */;
+		name = &quot;README: 3&quot;;
+		rLen = 0;
+		rLoc = 109;
 		rType = 0;
-		vrLen = 1049;
-		vrLoc = 335;
+		vrLen = 109;
+		vrLoc = 0;
+	};
+	DE44772C0E5CDD8F00EFCE2C /* PlistBookmark */ = {
+		isa = PlistBookmark;
+		fRef = 4DDCA7110ACC9A6100E082CE /* Info.plist */;
+		fallbackIsa = PBXBookmark;
+		isK = 0;
+		kPath = (
+		);
+		name = &quot;/Users/wes/Code/xcode/last.fm-tagger/Info.plist&quot;;
+		rLen = 0;
+		rLoc = 2147483647;
 	};
-	DE2E42CA0E21633000555291 /* PBXTextBookmark */ = {
+	DE44772D0E5CDD8F00EFCE2C /* PBXTextBookmark */ = {
 		isa = PBXTextBookmark;
+		fRef = 089C165DFE840E0CC02AAC07 /* English */;
+		name = &quot;InfoPlist.strings: 4&quot;;
+		rLen = 0;
+		rLoc = 127;
+		rType = 0;
+		vrLen = 213;
+		vrLoc = 0;
+	};
+	DE44772E0E5CDD8F00EFCE2C /* PlistBookmark */ = {
+		isa = PlistBookmark;
 		fRef = 4DDCA7110ACC9A6100E082CE /* Info.plist */;
-		name = &quot;Info.plist: 16&quot;;
+		fallbackIsa = PBXBookmark;
+		isK = 0;
+		kPath = (
+		);
+		name = &quot;/Users/wes/Code/xcode/last.fm-tagger/Info.plist&quot;;
+		rLen = 0;
+		rLoc = 2147483647;
+	};
+	DE44772F0E5CDD8F00EFCE2C /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 089C165DFE840E0CC02AAC07 /* English */;
+		name = &quot;InfoPlist.strings: 4&quot;;
+		rLen = 0;
+		rLoc = 127;
+		rType = 0;
+		vrLen = 213;
+		vrLoc = 0;
+	};
+	DE4477300E5CDD8F00EFCE2C /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 29B97316FDCFA39411CA2CEA /* main.m */;
+		name = &quot;main.m: 1&quot;;
 		rLen = 0;
-		rLoc = 531;
+		rLoc = 0;
 		rType = 0;
-		vrLen = 764;
-		vrLoc = 180;
+		vrLen = 287;
+		vrLoc = 0;
 	};
-	DE5C8D1E0E2045D30075EA4B /* last.fm-tagger */ = {
+	DE4477370E5CDD9800EFCE2C /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 29B97316FDCFA39411CA2CEA /* main.m */;
+		name = &quot;main.m: 1&quot;;
+		rLen = 0;
+		rLoc = 0;
+		rType = 0;
+		vrLen = 287;
+		vrLoc = 0;
+	};
+	DE4477380E5CDD9800EFCE2C /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 29B97316FDCFA39411CA2CEA /* main.m */;
+		name = &quot;main.m: 1&quot;;
+		rLen = 0;
+		rLoc = 0;
+		rType = 0;
+		vrLen = 287;
+		vrLoc = 0;
+	};
+	DE44774C0E5CDE9700EFCE2C /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 29B97316FDCFA39411CA2CEA /* main.m */;
+		name = &quot;main.m: 1&quot;;
+		rLen = 0;
+		rLoc = 0;
+		rType = 0;
+		vrLen = 287;
+		vrLoc = 0;
+	};
+	DE44774D0E5CDE9700EFCE2C /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = DE5C8D280E2045FF0075EA4B /* TagsController.rb */;
+		name = &quot;TagsController.rb: 3&quot;;
+		rLen = 0;
+		rLoc = 35;
+		rType = 0;
+		vrLen = 1513;
+		vrLoc = 0;
+	};
+	DE44774E0E5CDE9700EFCE2C /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = DE5C8D260E2045F60075EA4B /* PlaylistsController.rb */;
+		name = &quot;PlaylistsController.rb: 3&quot;;
+		rLen = 0;
+		rLoc = 40;
+		rType = 0;
+		vrLen = 472;
+		vrLoc = 0;
+	};
+	DE44774F0E5CDE9700EFCE2C /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = DE2895FE0E20935600AC6717 /* AppController.rb */;
+		name = &quot;AppController.rb: 6&quot;;
+		rLen = 0;
+		rLoc = 108;
+		rType = 0;
+		vrLen = 327;
+		vrLoc = 0;
+	};
+	DE4477500E5CDE9700EFCE2C /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = DE5C8DC90E2062610075EA4B /* Artist.rb */;
+		name = &quot;Artist.rb: 6&quot;;
+		rLen = 0;
+		rLoc = 101;
+		rType = 0;
+		vrLen = 385;
+		vrLoc = 0;
+	};
+	DE4477510E5CDE9700EFCE2C /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = DE5C8D220E2045E70075EA4B /* ArtistsController.rb */;
+		name = &quot;ArtistsController.rb: 3&quot;;
+		rLen = 0;
+		rLoc = 38;
+		rType = 0;
+		vrLen = 1397;
+		vrLoc = 0;
+	};
+	DE4477520E5CDE9700EFCE2C /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 29B97316FDCFA39411CA2CEA /* main.m */;
+		name = &quot;main.m: 1&quot;;
+		rLen = 0;
+		rLoc = 0;
+		rType = 0;
+		vrLen = 287;
+		vrLoc = 0;
+	};
+	DE4477530E5CDE9700EFCE2C /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = DE5C8D260E2045F60075EA4B /* PlaylistsController.rb */;
+		name = &quot;PlaylistsController.rb: 19&quot;;
+		rLen = 0;
+		rLoc = 651;
+		rType = 0;
+		vrLen = 473;
+		vrLoc = 0;
+	};
+	DE4477540E5CDE9700EFCE2C /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = DE5C8D220E2045E70075EA4B /* ArtistsController.rb */;
+		name = &quot;ArtistsController.rb: 38&quot;;
+		rLen = 0;
+		rLoc = 1389;
+		rType = 0;
+		vrLen = 1437;
+		vrLoc = 40;
+	};
+	DE4477550E5CDE9700EFCE2C /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = DE5C8D280E2045FF0075EA4B /* TagsController.rb */;
+		name = &quot;TagsController.rb: 29&quot;;
+		rLen = 0;
+		rLoc = 916;
+		rType = 0;
+		vrLen = 1514;
+		vrLoc = 0;
+	};
+	DE4477560E5CDE9700EFCE2C /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = DE5C8D260E2045F60075EA4B /* PlaylistsController.rb */;
+		name = &quot;PlaylistsController.rb: 19&quot;;
+		rLen = 0;
+		rLoc = 651;
+		rType = 0;
+		vrLen = 473;
+		vrLoc = 0;
+	};
+	DE4477570E5CDE9700EFCE2C /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = DE5C8D220E2045E70075EA4B /* ArtistsController.rb */;
+		name = &quot;ArtistsController.rb: 38&quot;;
+		rLen = 0;
+		rLoc = 1389;
+		rType = 0;
+		vrLen = 1398;
+		vrLoc = 0;
+	};
+	DE4477580E5CDE9700EFCE2C /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = DE2895FE0E20935600AC6717 /* AppController.rb */;
+		name = &quot;AppController.rb: 11&quot;;
+		rLen = 0;
+		rLoc = 190;
+		rType = 0;
+		vrLen = 336;
+		vrLoc = 0;
+	};
+	DE4477590E5CDE9700EFCE2C /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = DE5C8D260E2045F60075EA4B /* PlaylistsController.rb */;
+		name = &quot;PlaylistsController.rb: 3&quot;;
+		rLen = 0;
+		rLoc = 40;
+		rType = 0;
+		vrLen = 472;
+		vrLoc = 0;
+	};
+	DE44775A0E5CDE9700EFCE2C /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = DE5C8D280E2045FF0075EA4B /* TagsController.rb */;
+		name = &quot;TagsController.rb: 3&quot;;
+		rLen = 0;
+		rLoc = 35;
+		rType = 0;
+		vrLen = 1513;
+		vrLoc = 0;
+	};
+	DE44775B0E5CDE9700EFCE2C /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = DE5C8D260E2045F60075EA4B /* PlaylistsController.rb */;
+		name = &quot;PlaylistsController.rb: 3&quot;;
+		rLen = 0;
+		rLoc = 40;
+		rType = 0;
+		vrLen = 472;
+		vrLoc = 0;
+	};
+	DE44775C0E5CDE9700EFCE2C /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = DE5C8D220E2045E70075EA4B /* ArtistsController.rb */;
+		name = &quot;ArtistsController.rb: 3&quot;;
+		rLen = 0;
+		rLoc = 38;
+		rType = 0;
+		vrLen = 1397;
+		vrLoc = 0;
+	};
+	DE44775D0E5CDE9700EFCE2C /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = DE5C8DC90E2062610075EA4B /* Artist.rb */;
+		name = &quot;Artist.rb: 19&quot;;
+		rLen = 0;
+		rLoc = 300;
+		rType = 0;
+		vrLen = 394;
+		vrLoc = 0;
+	};
+	DE44775E0E5CDE9700EFCE2C /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = DE2895FE0E20935600AC6717 /* AppController.rb */;
+		name = &quot;AppController.rb: 6&quot;;
+		rLen = 0;
+		rLoc = 108;
+		rType = 0;
+		vrLen = 327;
+		vrLoc = 0;
+	};
+	DE44775F0E5CDE9700EFCE2C /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = DE5C8DC90E2062610075EA4B /* Artist.rb */;
+		name = &quot;Artist.rb: 6&quot;;
+		rLen = 0;
+		rLoc = 101;
+		rType = 0;
+		vrLen = 385;
+		vrLoc = 0;
+	};
+	DE4477600E5CDE9700EFCE2C /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = DE5C8D220E2045E70075EA4B /* ArtistsController.rb */;
+		name = &quot;ArtistsController.rb: 12&quot;;
+		rLen = 0;
+		rLoc = 297;
+		rType = 0;
+		vrLen = 864;
+		vrLoc = 0;
+	};
+	DE4477610E5CDEAE00EFCE2C /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = DE5C8D220E2045E70075EA4B /* ArtistsController.rb */;
+		name = &quot;ArtistsController.rb: 11&quot;;
+		rLen = 0;
+		rLoc = 265;
+		rType = 0;
+		vrLen = 909;
+		vrLoc = 0;
+	};
+	DE4477620E5CDF4A00EFCE2C /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = DE5C8D220E2045E70075EA4B /* ArtistsController.rb */;
+		name = &quot;ArtistsController.rb: 11&quot;;
+		rLen = 0;
+		rLoc = 265;
+		rType = 0;
+		vrLen = 909;
+		vrLoc = 0;
+	};
+	DE4477630E5CDF4A00EFCE2C /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = DE5C8D260E2045F60075EA4B /* PlaylistsController.rb */;
+		name = &quot;PlaylistsController.rb: 3&quot;;
+		rLen = 0;
+		rLoc = 40;
+		rType = 0;
+		vrLen = 472;
+		vrLoc = 0;
+	};
+	DE4477640E5CDF4A00EFCE2C /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = DE5C8D220E2045E70075EA4B /* ArtistsController.rb */;
+		name = &quot;ArtistsController.rb: 11&quot;;
+		rLen = 0;
+		rLoc = 265;
+		rType = 0;
+		vrLen = 909;
+		vrLoc = 0;
+	};
+	DE4477650E5CDF4A00EFCE2C /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = DE5C8D260E2045F60075EA4B /* PlaylistsController.rb */;
+		name = &quot;PlaylistsController.rb: 21&quot;;
+		rLen = 0;
+		rLoc = 521;
+		rType = 0;
+		vrLen = 537;
+		vrLoc = 0;
+	};
+	DE4477670E5CDF6100EFCE2C /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = DE5C8D260E2045F60075EA4B /* PlaylistsController.rb */;
+		name = &quot;PlaylistsController.rb: 22&quot;;
+		rLen = 0;
+		rLoc = 644;
+		rType = 0;
+		vrLen = 549;
+		vrLoc = 0;
+	};
+	DE4477680E5CDF7500EFCE2C /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = DE5C8D260E2045F60075EA4B /* PlaylistsController.rb */;
+		name = &quot;PlaylistsController.rb: 23&quot;;
+		rLen = 0;
+		rLoc = 645;
+		rType = 0;
+		vrLen = 655;
+		vrLoc = 0;
+	};
+	DE44776A0E5CDF7800EFCE2C /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = DE5C8D260E2045F60075EA4B /* PlaylistsController.rb */;
+		name = &quot;PlaylistsController.rb: 23&quot;;
+		rLen = 0;
+		rLoc = 650;
+		rType = 0;
+		vrLen = 655;
+		vrLoc = 0;
+	};
+	DE5C8D1E0E2045D30075EA4B /* Last.fm Tagger */ = {
 		isa = PBXExecutable;
 		activeArgIndices = (
 		);
@@ -261,7 +762,7 @@
 		executableSystemSymbolLevel = 0;
 		executableUserSymbolLevel = 0;
 		libgmallocEnabled = 0;
-		name = &quot;last.fm-tagger&quot;;
+		name = &quot;Last.fm Tagger&quot;;
 		savedGlobals = {
 		};
 		sourceDirectories = (
@@ -269,9 +770,9 @@
 	};
 	DE5C8D220E2045E70075EA4B /* ArtistsController.rb */ = {
 		uiCtxt = {
-			sepNavIntBoundsRect = &quot;{{0, 0}, {710, 658}}&quot;;
-			sepNavSelRange = &quot;{642, 0}&quot;;
-			sepNavVisRange = &quot;{134, 1094}&quot;;
+			sepNavIntBoundsRect = &quot;{{0, 0}, {1460, 1026}}&quot;;
+			sepNavSelRange = &quot;{265, 0}&quot;;
+			sepNavVisRange = &quot;{0, 909}&quot;;
 		};
 	};
 	DE5C8D240E2045E80075EA4B /* Source Control */ = {
@@ -287,35 +788,25 @@
 	};
 	DE5C8D260E2045F60075EA4B /* PlaylistsController.rb */ = {
 		uiCtxt = {
-			sepNavIntBoundsRect = &quot;{{0, 0}, {980, 486}}&quot;;
-			sepNavSelRange = &quot;{406, 0}&quot;;
-			sepNavVisRange = &quot;{0, 513}&quot;;
+			sepNavIntBoundsRect = &quot;{{0, 0}, {988, 718}}&quot;;
+			sepNavSelRange = &quot;{650, 0}&quot;;
+			sepNavVisRange = &quot;{0, 655}&quot;;
 		};
 	};
 	DE5C8D280E2045FF0075EA4B /* TagsController.rb */ = {
 		uiCtxt = {
-			sepNavIntBoundsRect = &quot;{{0, 0}, {1016, 1246}}&quot;;
-			sepNavSelRange = &quot;{847, 0}&quot;;
-			sepNavVisRange = &quot;{399, 1156}&quot;;
+			sepNavIntBoundsRect = &quot;{{0, 0}, {1324, 1691}}&quot;;
+			sepNavSelRange = &quot;{35, 0}&quot;;
+			sepNavVisRange = &quot;{0, 1513}&quot;;
 		};
 	};
 	DE5C8D440E20471D0075EA4B /* README */ = {
 		uiCtxt = {
-			sepNavIntBoundsRect = &quot;{{0, 0}, {575, 486}}&quot;;
+			sepNavIntBoundsRect = &quot;{{0, 0}, {800, 509}}&quot;;
 			sepNavSelRange = &quot;{109, 0}&quot;;
 			sepNavVisRange = &quot;{0, 109}&quot;;
 		};
 	};
-	DE5C8D630E204B3C0075EA4B /* PBXTextBookmark */ = {
-		isa = PBXTextBookmark;
-		fRef = DE5C8D440E20471D0075EA4B /* README */;
-		name = &quot;README: 3&quot;;
-		rLen = 0;
-		rLoc = 109;
-		rType = 0;
-		vrLen = 109;
-		vrLoc = 0;
-	};
 	DE5C8D660E204B3C0075EA4B /* PBXTextBookmark */ = {
 		isa = PBXTextBookmark;
 		fRef = 4DDCA7110ACC9A6100E082CE /* Info.plist */;
@@ -345,7 +836,7 @@
 		fRef = DE5C8D280E2045FF0075EA4B /* TagsController.rb */;
 		name = &quot;TagsController.rb: 6&quot;;
 		rLen = 8;
-		rLoc = 97;
+		rLoc = 96;
 		rType = 0;
 		vrLen = 1055;
 		vrLoc = 0;
@@ -357,7 +848,7 @@
 		rLen = 0;
 		rLoc = 0;
 		rType = 0;
-		vrLen = 493;
+		vrLen = 473;
 		vrLoc = 0;
 	};
 	DE5C8D6C0E204B3C0075EA4B /* PBXTextBookmark */ = {
@@ -386,9 +877,9 @@
 	};
 	DE5C8DC90E2062610075EA4B /* Artist.rb */ = {
 		uiCtxt = {
-			sepNavIntBoundsRect = &quot;{{0, 0}, {575, 509}}&quot;;
-			sepNavSelRange = &quot;{309, 0}&quot;;
-			sepNavVisRange = &quot;{0, 394}&quot;;
+			sepNavIntBoundsRect = &quot;{{0, 0}, {800, 741}}&quot;;
+			sepNavSelRange = &quot;{101, 0}&quot;;
+			sepNavVisRange = &quot;{0, 385}&quot;;
 		};
 	};
 	DE5C8DD00E2062FD0075EA4B /* PBXTextBookmark */ = {
@@ -396,59 +887,29 @@
 		fRef = DE5C8DC90E2062610075EA4B /* Artist.rb */;
 		name = &quot;Artist.rb: 11&quot;;
 		rLen = 0;
-		rLoc = 169;
+		rLoc = 160;
 		rType = 0;
 		vrLen = 232;
 		vrLoc = 0;
 	};
-	DEB0439E0E21204E0086A6C4 /* PBXTextBookmark */ = {
+	DEED323B0E3B827200C83C49 /* PBXTextBookmark */ = {
 		isa = PBXTextBookmark;
-		fRef = DE5C8DC90E2062610075EA4B /* Artist.rb */;
-		name = &quot;Artist.rb: 19&quot;;
+		fRef = 29B97316FDCFA39411CA2CEA /* main.m */;
+		name = &quot;main.m: 1&quot;;
 		rLen = 0;
-		rLoc = 309;
-		rType = 0;
-		vrLen = 394;
-		vrLoc = 0;
-	};
-	DEB043F30E21380E0086A6C4 /* PBXTextBookmark */ = {
-		isa = PBXTextBookmark;
-		fRef = 089C165DFE840E0CC02AAC07 /* English */;
-		name = &quot;InfoPlist.strings: 6&quot;;
-		rLen = 0;
-		rLoc = 213;
-		rType = 0;
-		vrLen = 213;
-		vrLoc = 0;
-	};
-	DEB044290E214E160086A6C4 /* PBXTextBookmark */ = {
-		isa = PBXTextBookmark;
-		fRef = DE5C8D220E2045E70075EA4B /* ArtistsController.rb */;
-		name = &quot;ArtistsController.rb: 23&quot;;
-		rLen = 0;
-		rLoc = 642;
-		rType = 0;
-		vrLen = 1094;
-		vrLoc = 134;
-	};
-	DEB044350E214FEE0086A6C4 /* PBXTextBookmark */ = {
-		isa = PBXTextBookmark;
-		fRef = DE5C8D260E2045F60075EA4B /* PlaylistsController.rb */;
-		name = &quot;PlaylistsController.rb: 17&quot;;
-		rLen = 0;
-		rLoc = 406;
+		rLoc = 0;
 		rType = 0;
-		vrLen = 513;
+		vrLen = 287;
 		vrLoc = 0;
 	};
-	DEBF38CA0E211F59006383C2 /* PBXTextBookmark */ = {
+	DEED32420E3B827200C83C49 /* PBXTextBookmark */ = {
 		isa = PBXTextBookmark;
-		fRef = DE2895FE0E20935600AC6717 /* AppController.rb */;
-		name = &quot;AppController.rb: 13&quot;;
+		fRef = 29B97316FDCFA39411CA2CEA /* main.m */;
+		name = &quot;main.m: 1&quot;;
 		rLen = 0;
-		rLoc = 234;
+		rLoc = 0;
 		rType = 0;
-		vrLen = 238;
+		vrLen = 287;
 		vrLoc = 0;
 	};
 }</diff>
      <filename>last.fm-tagger.xcodeproj/wes.pbxuser</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>9a4c88d399b060a26521491ee5b4570116f49771</id>
    </parent>
  </parents>
  <author>
    <name>Wes Rogers</name>
    <email>wesrog@gmail.com</email>
  </author>
  <url>http://github.com/wesrog/last.fm-tagger/commit/f813604384d5ff4cf2e545337e5c24c595fd3ed0</url>
  <id>f813604384d5ff4cf2e545337e5c24c595fd3ed0</id>
  <committed-date>2008-08-20T17:01:31-07:00</committed-date>
  <authored-date>2008-08-20T17:01:31-07:00</authored-date>
  <message>added new features</message>
  <tree>71520b0d616b2b9838955b7c3677835829ce62ed</tree>
  <committer>
    <name>Wes Rogers</name>
    <email>wesrog@gmail.com</email>
  </committer>
</commit>
