Abstract object theory