more robust setup