various commands, functions and so on (written in haskell)