refactored handManager