Begins to redesign the lib's basic structure