impl + fix tests