Final

many changes