modularizing the say extension