initial hash-on implementation