added self as a magic param too
upped version