start working on optimizer