added abstract
added a lot of stuff