Many Many things added and fixed and made better