lib refresh and project restructure