general algorithm practice and experimentation