Updated and simplified.