Documentation

This commit add some documentation. We're are using doxygen's comments
style to document the source code