started refactor
started refactor