Added a lot of changes