added abstract and reformatted