make it more robust