rewrote the class
added events as hooks
removed index recalculation
added hook for id recalculation
added extensive comments
removed extra files