Started to oop the whole thing