componenthandler refactors