todo: control unit and wrap up