draw components refactoring