New execution model (Part II)
  * Reallocation
  * More tests and refactor the old ones