SMS: Modern algebra with applications.