Changed basic data structure, next step is to split apart library