more todo refactor