completed with all comments