refactored after merge
unified builder methods