structuring libraries