completed using parts to add features