libpurple is garbage