Added quite a bit of stuffs