many changes for solve many errors