implemented the Safe interface