Fixed the way function meta data is handled, added some tests around setting an observed method to a different method