     extension = {}
 
     # Only one param: (extension) ->
-    if args.length is 1 then extension = args[0]
+    if args.length is 1
+      if _.isObject(args[0]) then extension = args[0]
+      if _.isString(args[0]) then className = args[0]
 
     # Two params must be: (namespace, className) OR (className, extension) ->
     if args.length is 2

    # Assign the optional custom constructor for this class
    Parent = this
    Constructor = extension.Constructor ? -> Parent.apply(this, arguments)

    # Create a named constructor for this class so that debugging
    # consoles are displaying the class name nicely.

  # Extends this class and return a child class with inherited prototype
  # and static properties.
  #
  # There are various ways you can call this method:
  #
  # 1. Space.Object.extend()
  # --------------------------------------------
  # Creates an anonymous child class without extra prototype properties.
  # Basically the same as `class extend Space.Object` in coffeescript
  #
  # 2. Space.Object.extend(className)
  # --------------------------------------------
  # Creates a named child class without extra prototype properties.
  # Basically the same as `class ClassName extend Space.Object` in coffeescript
  #
  # 3. Space.Object.extend({ prop: 'first', … })
  # --------------------------------------------
  # Creates an anonymous child class with extra prototype properties.
  # Same as:
  # class extend Space.Object
  #   prop: 'first'
  #
  # 4. Space.Object.extend(namespace, className)
  # --------------------------------------------
  # Creates a named class which inherits from Space.Object and assigns
  # it to the given namespace object.
  #
  # 5. Space.Object.extend(className, prototype)
  # --------------------------------------------
  # Creates a named class which inherits from Space.Object and extra prototype
  # properties which are assigned to the new class
  #
  # 6. Space.Object.extend(namespace, className, prototype)
  # --------------------------------------------
  # Creates a named class which inherits from Space.Object, has extra prototype
  # properties and is assigned to the given namespace.
