full version of this question