Completed Implementation and added basic tech demo

Found that there is a problem in the HashToRange method, will be
attempting to solve it tomorrow.