added butterfly; introduced types; introduced message