Bunch of changes and new classes