another idea
Use module prepending rather than redefining methods