done most of things except fragment thing