more fail-proof obj