start work on optimizer