first pass at Spinner, does not fire, greatly simplified from Java implementation