refactored aws module into fewer classes to maintain

This is the first set of changes than go under the structure refactor category. I plan to keep each of these in their own branch/PR to make them easier to review.