robust functionality