new room layout and supporting code