analyze part and connect each part
refactor