personal reduction can now use per()