some error handling; reversing rose logic