further purging unsafePerformIO