refactored and made awesome