some parts added