just refactoring a bit to split up components for easier control manipulation