The Structure of Abstract Algebra