refactoring these too