spinner added, wit some DRY