add forIn() and tests