updated and improved object