Rough variant implementation