allow full control via hook