added oops framework