bah, too complicated, and backwards