types causes