provides basic object interface