A Good implementation

I reverted to your base and commited each change separate. (branches hurt my head :P )

I added test for all the extras, passing both MRI and mruby

Also i started documenting (formats yardoc). Gonna complete documentation and probally leave it sit for a while.