make more robust