more robust and safer