Restructure to gem format
Few require tweaks
Initial support for hooks
Added hook functionality
Documentation and example for hooks
Gem update