added builder refactored