sketch refactored design