Redesign Body and BodyParts APIs, close #1238