initial commit of the library - just the structure