Added the base library and some documentation