added some refactory methods - need to improve