refactor and cleanup - next  part 2