Implement capture separated from auth