Add complete implementation