Refactoring, Linux support, and album art

Let me know what you think.