A Multi-type Preferential Attachment Model