created most of the stubs needed, did some of the logic for abstract object