refactored hoist