fixed from desktop, added some funcs