Apply OOP with Jerry's edits