Added a lot of changes after long time