     console.time 'oridomiConstruction' if devMode
     # If the browser doesn't support oriDomi, return the element unmodified.
     return @el unless oriDomiSupport
-
     # If the constructor wasn't called with the `new` keyword, invoke it again.
-    unless @ instanceof OriDomi
-      return new oriDomi @el, @settings
+    return new oriDomi @el, @settings unless @ instanceof OriDomi
+    # Return if the first argument isn't a DOM element.
+    if not @el or @el.nodeType isnt 1
+      return console.warn 'oriDomi: First argument must be a DOM element' if devMode
 
     # Extend any passed options with the defaults map.
     @settings = extendObj options, defaults
-
-    # Return if the first argument isn't a DOM element.
-    if not @el or @el.nodeType isnt 1
-      console.warn 'oriDomi: First argument must be a DOM element' if devMode
-      return
 
     # Clone the target element and save a copy of it.
     @cleanEl = @el.cloneNode true

  capProp = prop.charAt(0).toUpperCase() + prop.slice 1
  # Loop through the vendor prefix list and return when we find a match.
  for prefix in prefixList
    if testEl.style[prefix + capProp]?
      return prefix + capProp
  # If no matches are found, return false to denote that the browser is missing this property.
  false


# Invoke a functional scope to set a hyphenated version of the transform property.
css.transformProp = do ->
  # Use a regex to pluck the prefix `testProp` found.
  if prefix = css.transform.match /(\w+)Transform/i
    "-#{ prefix[1].toLowerCase() }-transform"
  else
    'transform'
