Advanced and Abstract Algebra