add work() and halt() to manage the frame manager