correct function names, stop using haskell cons operator