many changes added