refactored for betterness(style)