class implementation
update test