Update with complete implementation.