some properties added & some refactoring