refactored aws module into fewer classes to maintain