updated level generation