the bottle messaging framework