       abbr
 
 
-openSong =
-
-  getDomElem: (domElem) ->
-    if typeof domElem is 'string'
-      return document.getElementById domElem
-
-    if domElem.jquery
-      return domElem.get(0)
-
-    if domElem.nodeType
-      return domElem
-
-    undefined
-
-  renderLyrics: (element, lyrics) ->
+class OpenSong
+
+  constructor: (element, lyrics) ->
+    @el = getDomElem element
+    @model = parseLyrics lyrics
+
+    #render initially
+    this.renderLyrics()
+
+
+  renderLyrics: ->
     # TODO: support comments
     templateSrc = """
       {{#this}}

  ]

  ###
  parseLyrics: (lyrics) ->
    lyricsLines = lyrics.split("\n")

    dataModel = []

          console?.log "no support for: #{line}"
    dataModel

  transposeChord = (chord, amount) ->
    chords = [
      "C", "C#", "D", "D#", "E", "F", "F#", "G", "G#", "A", "A#", "B",
      "C", "Db", "D", "Eb", "E", "F", "Gb", "G", "Ab", "A", "Bb", "B"
