Contemporary abstract algebra - Gallian, Joseph A (Cengage, 2013)