refactor clients, add actionSheet factory