Added control component and indirection using the Command pattern