Initial complete implementation