moved into seperate library
added random transition effect