added abstract, partial ack