Use a less terrible implementation