initial import
Added new files from commons library to make the project standalone.
Added new files.
Merged and cleaned up a bit the code.