removed state and fragile check