Improved OO-structure, made multiple design improvements