<-all>some refactoring done