 (def exit-message
   "Exit...")
 
+(def operation-commands
+  {:MC classesWithManyConstructorsOp
+   :MCP constructorsWithManyParametersOp
+   :F finalizersOp
+   :ST classesAndSingletonTypeOp})
+
 (declare interactive)
 
 (defn- exit []

          :HELP (show-help state)
          :LOAD (load-classes ast)
          :MC (let [threshold (read-string (last (last (first ast))))]
                (mc-operation state threshold))
          :MCP (let [threshold (read-string (last (last (first ast))))]
                 (mcp-operation state threshold))
          :F (f-operation state)
          :ST (st-operation state)
          (command-not-implemented command state))))))

(defn interactive [state]

      (println "Java files loaded:" (count loadedCus))
      (interactive {:cus loadedCus}))))

(defn- command-not-implemented [command state]
  (println "Command not implemented: " command)
  (interactive state))

(defn- operation [op-command state & [threshold]]
  (printOperation (op-command operation-commands) (:cus state) threshold)
  (interactive state))

(defn- process [state input]
