some parts fixed