Made many improvements