Added lots of changes