comments added and complete