skeleton of how the lib will be structured