add spin method, and test