more refactoring
extract spinner