much muchness, but needs algorithms