added lot of stuff