Refactory 2 finished for OO