added some much neede comments