fork of acts_as_list but from 0.2.0