introduce SpinObject