created object interface and unit tests