created a new abstract class that supports spinner.