One of the first things for our level generator to do, is to create a new
Level object:

(new-levelmodel)

This call will instantiate a Level object. Note that the level initially has
no dimensions at all. The datastructure used will allow level to grow to any
direction, as much as there is memory in the computer (more or less anyway).
Now the level generator code can start modifying layout of the level:

Now you have a generator that can be used to generate new levels. Last step
is to modify an existing level generator to place a portal and create a level
using this new generator. If that step is skipped, new type of levels will
never get generated.