removed unsafePerformIO