working but need a better hash