Major library changes, some parts are still to be updated such as UI.