private function createTable(MWebfile $webfile, $dropTableIfExists = true)
    {

        $tableName = $this->resolveTableNameFromWebfile($webfile);

        // CREATE METADATA
        if (!$this->metadataExist($tableName)) {
            $this->addMetadata($webfile::$m__sClassName, '1', $tableName);
        }

        $attributeArray = $webfile->getAttributes();

        // CREATE DATABASETABLE
        $table = new MDatabaseTable(
            $this->databaseConnection,
            $tableName);
        $table->specifyIdentifier("id", 10);

        /** @var \ReflectionProperty $oAttribute */
        foreach ($attributeArray as $oAttribute) {

            $sAttributeName = $oAttribute->getName();

            if (MWebfile::isSimpleDatatype($sAttributeName)
                && MWebfile::getSimplifiedAttributeName($sAttributeName) != "id"
                // ignore id as long as its set seperatly as primary key directly after creation of table
            ) {

                $tableColum = $this->createTableColumnFromAttributeName($sAttributeName);
                $table->addColumnObject($tableColum);
            }
        }
        if ($dropTableIfExists && $this->tableExistsByWebfile($webfile)) {
            $table->drop();
        }
        $table->create();
    }