refactored from function