final touches, more robust