Rewrite for generality