rewrote abstract - it still needs fixing