Generalized functions, added the ability to send arbitrary messages to classes