made a lot of changes. Will comment in GitHub web client