diff --git a/db/StoredProcedures.sql b/db/StoredProcedures.sql
index d35790833c2bea4ff92c8db3c3ee9f11182d5167..da6a35ca096090c8a23cb80e7267b374e1a39e45 100644
--- a/db/StoredProcedures.sql
+++ b/db/StoredProcedures.sql
@@ -2335,10 +2335,30 @@ BEGIN
 				RETURN 1;
 			END IF;
 			SET checker = AddModuleExam(TeacherID, DisciplineID);
+			
+			-- delete extra module from 
+			DELETE FROM `submodules`
+			WHERE submodules.ID in 
+				(SELECT submodules.ID 
+				FROM `modules` 
+				LEFT JOIN `submodules` ON submodules.ModuleID = modules.ID
+				WHERE modules.Type = 4 and modules.DisciplineID = DisciplineID
+				ORDER BY submodules.OrderNum DESC LIMIT 1);
+						
 			SET extraMax = 6;
 		ELSE
-			SET checker = DeleteModuleExam(TeacherID, DisciplineID);
 			SET extraMax = 30;
+			
+			SET checker = DeleteModuleExam(TeacherID, DisciplineID);
+			
+			
+			SELECT AddSubmodule(disciplines.AuthorID, modules.ID, extraMax, '', NULL, 'LandmarkControl')
+			INTO checker
+			FROM `modules`
+			INNER JOIN `disciplines` ON disciplines.ID = modules.DisciplineID
+            WHERE 	modules.Type = 4 AND 
+					modules.DisciplineID = DisciplineID;		
+			
 		END IF;
 
 		UPDATE `disciplines`
@@ -3007,6 +3027,7 @@ BEGIN
 		SET checker = 6;
 	ELSE
 		SET checker = 30;
+		SET checker = AddSubmodule(TeacherID, vModule, checker, '', NULL, 'LandmarkControl');
 	END IF; 
 
 	SET checker = AddSubmodule(TeacherID, vModule, checker, '', NULL, 'LandmarkControl');
diff --git a/db/fix.sql b/db/fix.sql
index 72a4e56bff7796c0aaf96b898ad3b6f93d215f67..26077e051d6d4421013b70d3480c4e27e6b5ee9f 100644
--- a/db/fix.sql
+++ b/db/fix.sql
@@ -140,8 +140,6 @@ BEGIN
 			);
 END //
 
-
-
 DELETE FROM `rating_table`
 WHERE rating_table.SubmoduleID IN
 	(
@@ -177,148 +175,4 @@ INSERT INTO `rating`.`page_access` (`ID`, `Pagename`, `Bitmask`) VALUES (NULL, '
 
 ALTER TABLE `specializations` ADD  `Code` varchar(12) NULL;
 
-
-DROP FUNCTION IF EXISTS AddSubmodule//
-CREATE FUNCTION `AddSubmodule`  ( `TeacherID`   INT, 
-									`ModuleID`    INT, 
-									`MaxRate`     INT, 
-									`Name`      VARCHAR(200) charset utf8, 
-									`Description` VARCHAR(200) charset utf8,
-									`ControlType` VARCHAR(30) charset utf8
-								)   RETURNS int(11)
-		NO SQL
-BEGIN  
-    DECLARE checker INT;  
-	
-	SET checker = -1;
-	SELECT disciplines.ID 
-	INTO checker 
-	FROM `modules`
-	INNER JOIN `disciplines` ON disciplines.ID = modules.DisciplineID
-	WHERE   TeacherID = disciplines.AuthorID AND
-			ModuleID = modules.ID 
-	LIMIT 1;
-	IF  checker <= 0 OR
-			InternalIsMapLocked(checker)
-	THEN
-			RETURN -1;
-	END IF;
-
-
-	SET checker = 0;
-	SELECT MAX(submodules.OrderNum)
-	INTO checker
-	FROM `submodules`
-	WHERE   ModuleID = submodules.ModuleID
-	LIMIT 1;
-	IF checker IS NULL THEN
-		SET checker = 0;
-	END IF;
-	SET checker = checker + 1;
-
-	IF Description = "" THEN
-		INSERT INTO `submodules`  
-				(   submodules.ModuleID, submodules.MaxRate, submodules.OrderNum, submodules.Name, submodules.Description, submodules.Type )
-		VALUES  (   ModuleID, MaxRate, checker, Name, NULL, ControlType);
-	ELSE 
-		INSERT INTO `submodules`  
-				(   submodules.ModuleID, submodules.MaxRate, submodules.OrderNum, submodules.Name, submodules.Description, submodules.Type )
-		VALUES  (   ModuleID, MaxRate, checker, Name, Description, ControlType);
-	END IF;
-	
-	RETURN  ( SELECT submodules.ID
-				FROM `submodules`
-				WHERE   submodules.ModuleID = ModuleID AND
-						submodules.OrderNum = checker
-				LIMIT 1
-			);
-END // 
-
-DROP FUNCTION IF EXISTS AddModule//
-CREATE FUNCTION `AddModule`	(	`TeacherID` 	INT, 
-								`DisciplineID` 	INT, 
-								`Name` 			VARCHAR(200) charset utf8
-							) 	RETURNS int(11)
-    NO SQL
-BEGIN  
-    DECLARE checker INT;  					 
-	
-    IF 	NOT InternalIsTeacherAuthor(TeacherID,DisciplineID) OR
-    	InternalIsMapLocked(DisciplineID) 
-    THEN
-    	RETURN -1;
-	END IF;
-
-	SET checker = 0;
-	SELECT MAX(modules.OrderNum)
-	INTO checker
-	FROM `modules`
-	WHERE 	DisciplineID = modules.DisciplineID AND
-			modules.Type = 1
-	LIMIT 1;
-	IF checker IS NULL THEN
-		SET checker = 0;
-	END IF;
-	SET checker = checker + 1;
-
-
-	INSERT INTO `modules` 	
-			( 	modules.Name, modules.OrderNum, modules.DisciplineID )
-	VALUES 	(	Name , checker , DisciplineID );
-	
-
-	RETURN 	(	SELECT 	modules.ID
-				FROM 	`modules`
-				WHERE 	DisciplineID = modules.DisciplineID AND 
-						checker = modules.OrderNum
-				LIMIT 1 
-			);
-END //
-
-
-DROP FUNCTION IF EXISTS AddModuleExtra//
-CREATE FUNCTION `AddModuleExtra`	(	`TeacherID` 	INT, 
-										`DisciplineID` 	INT
-									) 	RETURNS int(11)
-    NO SQL
-BEGIN  
-    DECLARE checker, vModule INT;  					 	
-    IF 	NOT InternalIsTeacherAuthor(TeacherID,DisciplineID) OR
-    	InternalIsMapLocked(DisciplineID) 
-    THEN
-    	RETURN -1;
-	END IF;
-
-	SET checker = -1;
-	SELECT modules.ID 
-	INTO checker
-	FROM `modules`
-	WHERE 	DisciplineID = modules.DisciplineID AND 
-			modules.Type = 4;
-	IF checker > 0 THEN
-		RETURN -2;
-	END IF;
-
-
-	INSERT INTO `modules` 	
-			( 	modules.Name, modules.OrderNum, modules.DisciplineID, modules.Type )
-	VALUES 	( 	'Добор баллов' , 2900666 , DisciplineID, 4 );
-
-	SET vModule = -1;
-	SELECT 	modules.ID
-	INTO vModule
-	FROM `modules`
-	WHERE 	DisciplineID = modules.DisciplineID AND 
-			modules.Type = 4
-	LIMIT 1;
-	IF vModule <= 0 THEN
-		RETURN -1; 
-	END IF;
-
-	SET checker = AddSubmodule(TeacherID, vModule, 8, '', NULL, 'LandmarkControl');
-	RETURN vModule;
-END //
-
-
-
 DELIMITER ;
\ No newline at end of file
diff --git a/~dev_rating/media/css/rating.css b/~dev_rating/media/css/rating.css
index 433439dc428f2b48ae7733bd17241119d0cf1bb2..a4695a5f73f8f16525b9b89e76b8b06d7c91c7d1 100644
--- a/~dev_rating/media/css/rating.css
+++ b/~dev_rating/media/css/rating.css
@@ -163,6 +163,6 @@ div#tdInfo_wrap {
 }
 
 .rate_a, .exam_a {
-	margin-left: 30px;
+	margin-left: 2.5%;
 }
 /* end todo */