Added an interface for parts, a few part base clases.