part setting refactored