adding more throrough comments