some refactoting and delinig unimplemented things