Why is refactoring done during test-driven development?
A. to enable larger objects and longer methods
B. to improve maintainability and readability
C. to ensure that the previous uses of the objects are explained
D. to ensure the duplication of essential code