fix behaviour when lower floor is negative
handle new parameter cabinSize
start differentiating calls from gotos