dramatically slow, but seems working