(fix) use interface on parts declaration and create method