refactored for more sense