adding hash support
should probably free memory
adding an exception in exceptional cases
adding some integer and float handling
fixing segv in error condition
support infinity