updated version
return object