updated: comments added