invite_capable refactored