oop and tests added