 (defn new-event? [eventname price date]
   (create-validator :event
                     [
-                     [ (vld/has-value? eventname)              (message :event :empty-name)      ]
-                     [ (vld/greater-than? price 0)             (message :event :zero-price)      ]
-                     [ (vld/has-value? date)                   (message :event :empty-date)      ]
-                     [ (empty? (db/get-event eventname date))  (message :event :duplicate-event) ]
+                     [ (vld/has-value? eventname)              (message [:event :empty-name])      ]
+                     [ (vld/greater-than? price 0)             (message [:event :zero-price])      ]
+                     [ (vld/has-value? date)                   (message [:event :empty-date])      ]
+                     [ (empty? (db/get-event eventname date))  (message [:event :duplicate-event]) ]
                      ]))
 
 (defn new-user? [username pass1 pass2]
   (create-validator :register
                     [
-                     [(vld/has-value? username) (message :user :empty-name)]
-                     [(>= (count pass1) 8) (message :register :short-pass)]
-                     [(= pass1 pass2) (message :register :notmatch-pass)]
-                     [(empty? (db/get-user username)) (message :user :unexist) ]
+                     [(vld/has-value? username) (message [:user :empty-name])]
+                     [(>= (count pass1) 8) (message [:register :short-pass])]
+                     [(= pass1 pass2) (message [:register :notmatch-pass])]
+                     [(empty? (db/get-user username)) (message [:user :unexist]) ]
                      ]))
 
 (defn login? [username password]
   (create-validator :login
-                    [[ (vld/has-value? username) (message :user :empty-name)]
-                     [ (vld/has-value? (db/get-user username)) (message :user :not-found)]
-                     [ (= password (:password (db/get-user username))) (message :login :invalid)]
+                    [[ (vld/has-value? username) (message [:user :empty-name])]
+                     [ (vld/has-value? (db/get-user username)) (message [:user :invalid])]
+                     [ (= password (:password (db/get-user username))) (message [:login :invalid])]
                      ])
   )
 
 (defn participation? [eid]
   (create-validator :participation
                     [
-                     [(not= (db/get-status eid) (db/statuses :finished)) (message :event :finished)]
-                     [(not= "" (:name (db/get-event eid))) (message :event :unexist)]
+                     [(not= (db/get-status eid) (db/statuses :finished)) (message [:event :finished])]
+                     [(not= "" (:name (db/get-event eid))) (message [:event :unexist])]
                      ]))
 
 (defn ids? [eid uid]
   "Check, if id's is correct. Used with (db/get-*id)"
   (create-validator :pay
                     [
-                     [(not= nil uid) (message :user :empty-name)]
-                     [(not= nil eid) (message :event :unexist)]
+                     [(not= nil uid) (message [:user :empty-name])]
+                     [(not= nil eid) (message [:event :unexist])]
                      ])
   )
 
 (defn parts? [ename date parts]
   (create-validator :pay
                     [
-                     [(<= parts (db/get-rest-parts ename date)) (message :event :parts-count)]
+                     [(<= parts (db/get-rest-parts ename date)) (message [:event :parts-count])]
                      ])
   )
 
 (defn fee? [id]
  (create-validator :pay
                    [
-                    [(not= nil id) (message :fee :unexist)]
-                    [false (message :event :unexist)]
-                    [false (message :user :unexist)]
+                    [(not= nil id) (message [:fee :unexist])]
+                    [(not (nil? (db/event-from-fee id))) (message [:event :unexist])]
+                    [false (message [:user :unexist])]
                     ]
                    )
   )

   :user {
          :empty-name "Username can't be empty"
          :not-found "User not found"
          :unexist "Username doesn't exists"
          }
   :login {
           :invalid "Incorrect Login or password"

           :empty-date      "Event should have date"
           :duplicate-event "Event with same name today was created. Use another name"
           :no-participants "Participants should be checked"
           :unexist         "Event %s does not exist"
           :finished        "Event is history"
           :parts-count     "Event have less parts that given"
           }
