updated with additional comments