updated to become a good object