done some efactoring