change to multi-implementation for clarity