diff --git a/data/interfaces/default/config.html b/data/interfaces/default/config.html
index fe464f75..5f4aa2da 100644
--- a/data/interfaces/default/config.html
+++ b/data/interfaces/default/config.html
@@ -1,4 +1,8 @@
<%inherit file="base.html"/>
+<%!
+ import headphones
+%>
+
<%def name="headerIncludes()">
+%def>
+
+<%def name="headIncludes()">
+
+%def>
+
+<%def name="javascriptIncludes()">
+
+
+%def>
\ No newline at end of file
diff --git a/data/interfaces/remix/base.html b/data/interfaces/remix/base.html
new file mode 100755
index 00000000..6a218b97
--- /dev/null
+++ b/data/interfaces/remix/base.html
@@ -0,0 +1,101 @@
+<%
+ import headphones
+%>
+
+
+
+
+
+
+
+
+
+
+
Headphones::Remix - ${title}
+
+
+
+
+
+
+
+
+ ${next.headIncludes()}
+
+
+
+
+
+
+ % if not headphones.CURRENT_VERSION:
+
+ % elif headphones.CURRENT_VERSION != headphones.LATEST_VERSION and headphones.INSTALL_TYPE != 'win':
+
+ % endif
+
+
+
+
+
+
+
+
+ ${next.headerIncludes()}
+
+
+
+
+ ${next.body()}
+
+
+
+
+
+
+
+ ${next.javascriptIncludes()}
+
+
+
+
+
+
+
+
+<%def name="javascriptIncludes()">%def>
+<%def name="headIncludes()">%def>
+<%def name="headerIncludes()">%def>
\ No newline at end of file
diff --git a/data/interfaces/remix/config.html b/data/interfaces/remix/config.html
new file mode 100644
index 00000000..5f4aa2da
--- /dev/null
+++ b/data/interfaces/remix/config.html
@@ -0,0 +1,265 @@
+<%inherit file="base.html"/>
+<%!
+ import headphones
+%>
+
+<%def name="headerIncludes()">
+
+
+
+%def>
+<%def name="body()">
+
+
+
+
+
+
+
+
+ (Web Interface changes require a restart to take effect)
+
+%def>
diff --git a/data/interfaces/remix/extras.html b/data/interfaces/remix/extras.html
new file mode 100644
index 00000000..d9dbbe2f
--- /dev/null
+++ b/data/interfaces/remix/extras.html
@@ -0,0 +1,13 @@
+<%inherit file="base.html" />
+<%def name="body()">
+
+
Artists You Might Like
+
+
+%def>
diff --git a/data/interfaces/remix/history.html b/data/interfaces/remix/history.html
new file mode 100644
index 00000000..77d80d87
--- /dev/null
+++ b/data/interfaces/remix/history.html
@@ -0,0 +1,79 @@
+<%inherit file="base.html"/>
+<%!
+ from headphones import helpers
+%>
+
+<%def name="headerIncludes()">
+
+
+
+%def>
+
+<%def name="body()">
+
+
+
+
+ Date Added
+ File Name
+ Size
+ Status
+
+
+
+
+ %for item in history:
+ <%
+ if item['Status'] == 'Processed':
+ grade = 'A'
+ elif item['Status'] == 'Snatched':
+ grade = 'C'
+ elif item['Status'] == 'Unprocessed':
+ grade = 'X'
+ else:
+ grade = 'U'
+ %>
+
+ ${item['DateAdded']}
+ ${item['Title']}
+ ${helpers.bytes_to_mb(item['Size'])}
+ ${item['Status']}
+ [retry ][new ]
+
+ %endfor
+
+
+%def>
+
+<%def name="headIncludes()">
+
+%def>
+
+<%def name="javascriptIncludes()">
+
+
+%def>
\ No newline at end of file
diff --git a/data/interfaces/remix/index.html b/data/interfaces/remix/index.html
new file mode 100644
index 00000000..83a594b6
--- /dev/null
+++ b/data/interfaces/remix/index.html
@@ -0,0 +1,86 @@
+<%inherit file="base.html"/>
+<%!
+ from headphones import helpers
+%>
+
+<%def name="body()">
+
+
+
+ Artist Name
+ Status
+ Latest Album
+ Have
+
+
+
+ %for artist in artists:
+ <%
+ totaltracks = artist['TotalTracks']
+ havetracks = artist['HaveTracks']
+ if not havetracks:
+ havetracks = 0
+ try:
+ percent = (havetracks*100.0)/totaltracks
+ if percent > 100:
+ percent = 100
+ except (ZeroDivisionError, TypeError):
+ percent = 0
+ totaltracks = '?'
+
+ if artist['ReleaseDate'] and artist['LatestAlbum']:
+ releasedate = artist['ReleaseDate']
+ albumdisplay = '%s (%s)' % (artist['LatestAlbum'], artist['ReleaseDate'])
+ if releasedate > helpers.today():
+ grade = 'A'
+ else:
+ grade = 'Z'
+ elif artist['LatestAlbum']:
+ releasedate = ''
+ grade = 'Z'
+ albumdisplay = '%s ' % artist['LatestAlbum']
+ else:
+ releasedate = ''
+ grade = 'Z'
+ albumdisplay = 'None '
+
+ if artist['Status'] == 'Paused':
+ grade = 'X'
+
+ %>
+
+ ${artist['ArtistName']}
+ ${artist['Status']}
+ ${albumdisplay}
+ ${havetracks}/${totaltracks}
+
+ %endfor
+
+
+%def>
+
+<%def name="headIncludes()">
+
+%def>
+
+<%def name="javascriptIncludes()">
+
+
+%def>
\ No newline at end of file
diff --git a/data/interfaces/remix/logs.html b/data/interfaces/remix/logs.html
new file mode 100644
index 00000000..98004034
--- /dev/null
+++ b/data/interfaces/remix/logs.html
@@ -0,0 +1,60 @@
+<%inherit file="base.html"/>
+<%!
+ from headphones import helpers
+%>
+
+<%def name="body()">
+
+
+
+ Timestamp
+ Level
+ Message
+
+
+
+ %for line in lineList:
+ <%
+ timestamp, message, level, threadname = line
+
+ if level == 'WARNING' or level == 'ERROR':
+ grade = 'X'
+ else:
+ grade = 'Z'
+ %>
+
+ ${timestamp}
+ ${level}
+ ${message}
+
+ %endfor
+
+
+%def>
+
+<%def name="headIncludes()">
+
+%def>
+
+<%def name="javascriptIncludes()">
+
+
+%def>
\ No newline at end of file
diff --git a/data/interfaces/remix/manage.html b/data/interfaces/remix/manage.html
new file mode 100644
index 00000000..8b891317
--- /dev/null
+++ b/data/interfaces/remix/manage.html
@@ -0,0 +1,57 @@
+<%inherit file="base.html" />
+<%!
+ import headphones
+%>
+
+<%def name="body()">
+
+
Scan Music Library
+ Where do you keep your music?
+ You can put in any directory, and it will scan for audio files in that folder
+ (including all subdirectories) For example: '/Users/name/Music'
+
+ It may take a while depending on how many files you have. You can navigate away from the page
+ as soon as you click 'Submit'
+
+
+
+
+
+
Import Last.FM Artists
+ Enter the username whose artists you want to import:
+
+
+
+
+
Placeholder :-)
+
+
+
+
+
+%def>
\ No newline at end of file
diff --git a/data/interfaces/remix/searchresults.html b/data/interfaces/remix/searchresults.html
new file mode 100644
index 00000000..5109d10b
--- /dev/null
+++ b/data/interfaces/remix/searchresults.html
@@ -0,0 +1,70 @@
+<%inherit file="base.html" />
+
+<%def name="body()">
+
+
+
+
+
+ %if type == 'album':
+ Album Name
+ %endif
+ Artist Name
+ Score
+
+
+
+
+ %if searchresults:
+ %for result in searchresults:
+ <%
+ if result['score'] == 100:
+ grade = 'A'
+ else:
+ grade = 'Z'
+ %>
+
+ %if type == 'album':
+ ${result['title']}
+ %endif
+ ${result['uniquename']}
+ ${result['score']}
+ %if type == 'album':
+ Add this album
+ %else:
+ Add this artist
+ %endif
+
+ %endfor
+ %endif
+
+
+%def>
+
+<%def name="headIncludes()">
+
+%def>
+
+<%def name="javascriptIncludes()">
+
+
+%def>
\ No newline at end of file
diff --git a/data/interfaces/remix/shutdown.html b/data/interfaces/remix/shutdown.html
new file mode 100644
index 00000000..be7ca21d
--- /dev/null
+++ b/data/interfaces/remix/shutdown.html
@@ -0,0 +1,13 @@
+<%inherit file="base.html"/>
+
+<%def name="headIncludes()">
+
+%def>
+
+<%def name="body()">
+
+
+
Headphones is ${message}
+
+
+%def>
\ No newline at end of file
diff --git a/data/interfaces/remix/style.css b/data/interfaces/remix/style.css
new file mode 100755
index 00000000..28fc9c97
--- /dev/null
+++ b/data/interfaces/remix/style.css
@@ -0,0 +1,298 @@
+/* HTML5 ✰ Boilerplate */
+
+html, body, div, span, object, iframe,
+h1, h2, h3, h4, h5, h6, p, blockquote, pre,
+abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp,
+small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li,
+fieldset, form, label, legend,
+table, caption, tbody, tfoot, thead, tr, th, td,
+article, aside, canvas, details, figcaption, figure,
+footer, header, hgroup, menu, nav, section, summary,
+time, mark, audio, video {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ font-size: 100%;
+ font: inherit;
+ vertical-align: baseline;
+}
+
+article, aside, details, figcaption, figure,
+footer, header, hgroup, menu, nav, section {
+ display: block;
+}
+
+blockquote, q { quotes: none; }
+blockquote:before, blockquote:after,
+q:before, q:after { content: ''; content: none; }
+ins { background-color: #ff9; color: #000; text-decoration: none; }
+mark { background-color: #ff9; color: #000; font-style: italic; font-weight: bold; }
+del { text-decoration: line-through; }
+abbr[title], dfn[title] { border-bottom: 1px dotted; cursor: help; }
+table { border-collapse: collapse; border-spacing: 0; }
+hr { display: block; height: 1px; border: 0; border-top: 1px solid #ccc; margin: 1em 0; padding: 0; }
+input, select { vertical-align: middle; }
+
+body { font:13px/1.231 sans-serif; *font-size:small; }
+select, input, textarea, button { font:99% sans-serif; }
+pre, code, kbd, samp { font-family: monospace, sans-serif; }
+
+html { overflow-y: scroll; }
+a:hover, a:active { outline: none; }
+ul, ol { margin-left: 2em; }
+ol { list-style-type: decimal; }
+nav ul, nav li { margin: 0; list-style:none; list-style-image: none; }
+small { font-size: 85%; }
+strong, th { font-weight: bold; }
+td { vertical-align: top; }
+
+sub, sup { font-size: 75%; line-height: 0; position: relative; }
+sup { top: -0.5em; }
+sub { bottom: -0.25em; }
+
+pre { white-space: pre; white-space: pre-wrap; word-wrap: break-word; padding: 15px; }
+textarea { overflow: auto; }
+.ie6 legend, .ie7 legend { margin-left: -7px; }
+input[type="radio"] { vertical-align: text-bottom; }
+input[type="checkbox"] { vertical-align: bottom; }
+.ie7 input[type="checkbox"] { vertical-align: baseline; }
+.ie6 input { vertical-align: text-bottom; }
+label, input[type="button"], input[type="submit"], input[type="image"], button { cursor: pointer; }
+button, input, select, textarea { margin: 0; }
+input:valid, textarea:valid { }
+input:invalid, textarea:invalid { border-radius: 1px; -moz-box-shadow: 0px 0px 5px red; -webkit-box-shadow: 0px 0px 5px red; box-shadow: 0px 0px 5px red; }
+.no-boxshadow input:invalid, .no-boxshadow textarea:invalid { background-color: #f0dddd; }
+
+::-moz-selection{ background: grey; color:#fff; text-shadow: none; }
+::selection { background: grey; color:#fff; text-shadow: none; }
+
+button { width: auto; overflow: visible; }
+.ie7 img { -ms-interpolation-mode: bicubic; }
+
+body, select, input, textarea { color: #444; }
+h1, h2, h3, h4, h5, h6 { font-weight: bold; }
+
+/*
+ // ========================================== \\
+ || ||
+ || Custom Styles ||
+ || ||
+ \\ ========================================== //
+*/
+
+a:link {
+ color: orange;
+ text-decoration: none;
+ }
+a:visited {
+ color: orange;
+ text-decoration: none;
+ }
+a:hover { /*this effect is not shown in NN4.xx*/
+ color: #999999;
+ text-decoration: underline;
+ }
+a:active {/*colour in NN4.xx is red*/
+ color: #5E2612;
+ text-decoration: underline;
+ }
+a.blue {
+ color: blue;
+ }
+
+container { }
+
+body { background-color: black; min-width: 935px; }
+
+header { min-height: 68px; width: 100%; min-width: 935px; padding-left: 0px; padding-right: 10px; background-color: #black; position: fixed; z-index: 998; }
+
+h1 { font-size: 24px; }
+h2 { font-size: 20px; }
+h3 { font-size: 16px; }
+
+p.indented { padding-top: 20px; margin-left: 20px; font-size: 14px; }
+p.center { text-align: center; font-size: 18px; }
+.smalltext2 { font-size: 11px; margin-left: 45px; }
+
+div#updatebar { text-align: center; min-width: 970px; width: 100%; background-color: light-blue; float: left; }
+div#logo { float: left; padding-left: 10px; }
+
+ul#nav { margin: 25px 0 0 0; float: left; list-style-type: none; }
+ul#nav li { margin: 40px 0px auto 10px; display: inline; }
+ul#nav li a { padding: 5px; font-size: 16px; font-weight: bold; color: white; text-decoration: none; }
+ul#nav li a:hover { background-color: #a3e532; }
+
+div#subhead_container { height: 30px; width:100%; min-width: 1000px; background-color: blue; float: left; list-style-type: none; z-index: 998; overflow: hidden; }
+ul#subhead_menu { margin-top: 5px; }
+ul#subhead_menu li { width: 100%; height: 100%; display: inline; }
+ul#subhead_menu li a { padding: 5px 15px 10px 15px; vertical-align: middle; color: white; font-size: 16px; text-decoration: none; }
+ul#subhead_menu li a:hover { width: 100%; height: 100%; background-color: #grey; }
+
+div#searchbar { margin: 24px 30px auto auto; float: right; }
+
+div#main { margin: 0; padding: 80px 0 0 0; }
+
+.table_wrapper { border-radius: 20px; -webkit-border-radius: 20px; -moz-border-radius: 20px; width: 88%; margin: 20px auto 0 auto; padding: 25px; background-color: white; position: relative; min-height: 200px; clear: both; _height: 302px; zoom: 1; }
+.manage_wrapper { width: 88%; margin: 20px auto 0 auto; padding: 25px; min-height: 150px; clear: both; _height: 302px; zoom: 1; }
+.table_wrapper_left { padding: 25px; background-color: #ffffff; float: left; width: 40%; min-height: 100px; margin-top: 25px; margin-left: 30px; margin-right: auto; -moz-border-radius: 20px; border-radius: 20px; }
+.table_wrapper_right{ padding: 25px; background-color: #ffffff; width: 40%; min-height: 100px; margin-top: 25px; margin-left: auto; margin-right: 30px; -moz-border-radius: 20px; border-radius: 20px; }
+
+.configtable { font-size: 14px; line-height:18px; }
+.configtable td { width: 350px; padding: 10px; }
+.configtable td#middle { vertical-align: middle; }
+
+table#artist_table { background-color: white; width: 100%; padding: 20px; }
+
+table#artist_table th#name { text-align: left; min-width: 200px; }
+table#artist_table th#status { text-align: left; min-width: 50px; }
+table#artist_table th#album { text-align: left; min-width: 300px; }
+table#artist_table th#have { text-align: center; }
+table#artist_table td#name { vertical-align: middle; text-align: left; min-width:200px; }
+table#artist_table td#status { vertical-align: middle; text-align: left; min-width: 50px; }
+table#artist_table td#album { vertical-align: middle; text-align: left; min-width: 300px; }
+table#artist_table td#have { vertical-align: middle; }
+
+div#paddingheader { padding-top: 48px; font-size: 24px; font-weight: bold; text-align: center; }
+div#nopaddingheader { font-size: 24px; font-weight: bold; text-align: center; }
+table#album_table { background-color: white; }
+
+table#album_table th#select { vertical-align: middle; text-align: left; min-width: 25px; }
+table#album_table th#albumart { text-align: left; min-width: 50px; }
+table#album_table th#albumname { text-align: center; min-width: 150px; }
+table#album_table th#reldate { width: 175px; text-align: center; min-width: 100px; }
+table#album_table th#status { width: 175px; text-align: center; min-width: 100px; }
+table#album_table th#type { width: 175px; text-align: center; min-width: 100px; }
+table#album_table td#select { vertical-align: middle; text-align: left; }
+table#album_table td#albumart { vertical-align: middle; text-align: left; }
+table#album_table td#albumname { vertical-align: middle; text-align: center; }
+table#album_table td#reldate { vertical-align: middle; text-align: center; }
+table#album_table td#status { vertical-align: middle; text-align: center; }
+table#album_table td#type { vertical-align: middle; text-align: center; }
+table#album_table td#have { vertical-align: middle; }
+
+img.albumArt { float: left; padding-right: 5px; }
+div#albumheader { padding-top: 48px; height: 200px; }
+div#track_wrapper { padding-top: 20px; text-align: center; font-size: 16px; }
+
+table#track_table th#number { text-align: right; min-width: 20px; }
+table#track_table th#name { text-align: center; min-width: 350px; }
+table#track_table th#duration { width: 175px; text-align: center; min-width: 100px; }
+table#track_table th#have { width: 175px; text-align: center; min-width: 100px; }
+
+table#track_table td#number { vertical-align: middle; text-align: right; }
+table#track_table td#name { vertical-align: middle; text-align: center; }
+table#track_table td#duration { vertical-align: middle; text-align: center; }
+table#track_table td#have { vertical-align: middle; text-align: center; }
+
+table#history_table { background-color: white; width: 100%; }
+
+table#log_table { background-color: white; }
+
+table#log_table th#timestamp { text-align: left; min-width: 150px; }
+table#log_table th#level { text-align: left; min-width: 60px; }
+table#log_table th#message { text-align: left; min-width: 500px; }
+
+table#upcoming_table th#albumart { text-align: center; min-width: 50px; }
+table#upcoming_table th#albumname { text-align: center; min-width: 200px; }
+table#upcoming_table th#artistname { text-align: center; min-width: 150px; }
+table#upcoming_table th#reldate { text-align: center; min-width: 100px; }
+table#upcoming_table th#type { text-align: center; min-width: 75px; }
+
+table#upcoming_table td#select { vertical-align: middle; text-align: center; }
+table#upcoming_table td#albumart { vertical-align: middle; text-align: center; min-width: 50px; }
+table#upcoming_table td#albumname { vertical-align: middle; text-align: center; min-width: 200px; }
+table#upcoming_table td#artistname { vertical-align: middle; text-align: center; min-width: 150px; }
+table#upcoming_table td#reldate { vertical-align: middle; text-align: center; min-width: 100px; }
+table#upcoming_table td#type { vertical-align: middle; text-align: center; min-width: 75px; }
+table#upcoming_table td#status { vertical-align: middle; text-align: center; }
+
+table#wanted_table th#albumart { text-align: center; min-width: 50px; }
+table#wanted_table th#albumname { text-align: center; min-width: 200px; }
+table#wanted_table th#artistname { text-align: center; min-width: 150px; }
+table#wanted_table th#reldate { text-align: center; min-width: 100px; }
+table#wanted_table th#type { text-align: center; min-width: 75px; }
+
+table#wanted_table td#select { vertical-align: middle; text-align: center; }
+table#wanted_table td#albumart { vertical-align: middle; text-align: center; min-width: 50px; }
+table#wanted_table td#albumname { vertical-align: middle; text-align: center; min-width: 200px; }
+table#wanted_table td#artistname { vertical-align: middle; text-align: center; min-width: 150px; }
+table#wanted_table td#reldate { vertical-align: middle; text-align: center; min-width: 100px; }
+table#wanted_table td#type { vertical-align: middle; text-align: center; min-width: 75px; }
+table#wanted_table td#status { vertical-align: middle; text-align: center; }
+
+table#searchresults_table th#albumname { text-align: left; min-width: 225px; }
+table#searchresults_table th#artistname { text-align: center; min-width: 325px; }
+table#searchresults_table th#score { text-align: center; min-width: 75px; }
+
+table#searchresults_table td#albumname { vertical-align: middle; text-align: left; min-width: 200px; }
+table#searchresults_table td#artistname { vertical-align: middle; text-align: left; min-width: 300px; }
+table#searchresults_table td#score { vertical-align: middle; text-align: center; min-width: 75px; }
+
+div.progress-container { border: 1px solid #ccc; width: 100px; height: 14px; margin: 2px 5px 2px 0; padding: 1px; float: left; background: white; }
+div.progress-container > div { background-color: #a3e532; height: 14px; }
+.havetracks { font-size: 13px; margin-left: 36px; padding-bottom: 3px; vertical-align: middle; }
+
+footer { margin: 20px auto 20px auto; }
+div#version { text-align: center; font-weight: bold; }
+div#donate { text-align: center; margin: 20px auto 20px auto; }
+
+div#shutdown{ text-align: center; vertical-align: middle; }
+
+.cloudtag { padding-top: 30px; font-size:16px; }
+#cloud a.tag1 { font-size: 0.7em; font-weight: 100; }
+#cloud a.tag2 { font-size: 0.8em; font-weight: 200; }
+#cloud a.tag3 { font-size: 0.9em; font-weight: 300; }
+#cloud a.tag4 { font-size: 1.0em; font-weight: 400; }
+#cloud a.tag5 { font-size: 1.2em; font-weight: 500; }
+#cloud a.tag6 { font-size: 1.4em; font-weight: 600; }
+#cloud a.tag7 { font-size: 1.6em; font-weight: 700; }
+#cloud a.tag8 { font-size: 1.8em; font-weight: 800; }
+#cloud a.tag9 { font-size: 2.2em; font-weight: 900; }
+#cloud a.tag10 { font-size: 2.5em; font-weight: 900; }
+
+#cloud { padding: 2px; line-height: 1.5em; text-align: center; }
+#cloud a { padding: 0px; }
+#cloud { margin: 0; }
+#cloud li { display: inline; }
+
+
+
+.ir { display: block; text-indent: -999em; overflow: hidden; background-repeat: no-repeat; text-align: left; direction: ltr; }
+.hidden { display: none; visibility: hidden; }
+.visuallyhidden { border: 0; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; }
+.visuallyhidden.focusable:active,
+.visuallyhidden.focusable:focus { clip: auto; height: auto; margin: 0; overflow: visible; position: static; width: auto; }
+.invisible { visibility: hidden; }
+.clearfix:before, .clearfix:after { content: "\0020"; display: block; height: 0; overflow: hidden; }
+.clearfix:after { clear: both; }
+.clearfix { zoom: 1; }
+
+
+@media all and (orientation:portrait) {
+
+}
+
+@media all and (orientation:landscape) {
+
+}
+
+@media screen and (max-device-width: 480px) {
+
+ html { -webkit-text-size-adjust:none; -ms-text-size-adjust:none; }
+}
+
+
+@media print {
+ * { background: transparent !important; color: black !important; text-shadow: none !important; filter:none !important;
+ -ms-filter: none !important; }
+ a, a:visited { color: #444 !important; text-decoration: underline; }
+ a[href]:after { content: " (" attr(href) ")"; }
+ abbr[title]:after { content: " (" attr(title) ")"; }
+ .ir a:after, a[href^="javascript:"]:after, a[href^="#"]:after { content: ""; }
+ pre, blockquote { border: 1px solid #999; page-break-inside: avoid; }
+ thead { display: table-header-group; }
+ tr, img { page-break-inside: avoid; }
+ @page { margin: 0.5cm; }
+ p, h2, h3 { orphans: 3; widows: 3; }
+ h2, h3{ page-break-after: avoid; }
+}
\ No newline at end of file
diff --git a/data/interfaces/remix/upcoming.html b/data/interfaces/remix/upcoming.html
new file mode 100644
index 00000000..5c209056
--- /dev/null
+++ b/data/interfaces/remix/upcoming.html
@@ -0,0 +1,86 @@
+<%inherit file="base.html" />
+<%def name="body()">
+
+
Upcoming Albums
+
+
+
+
+ Artist
+ Album Name
+ Release Date
+ Type
+ Status
+
+
+
+ %for album in upcoming:
+
+
+ ${album['ArtistName']}
+ ${album['AlbumTitle']}
+ ${album['ReleaseDate']}
+ ${album['Type']}
+ ${album['Status']}
+
+ %endfor
+
+
+
+
+