less fancy haskell to avoid collisions