added dirty workaround for calculating expression automatically
refactored ModuleParser
refactored FunctionsCollector
refactored DependencyCollector
refactored DependencySorter