some rewrites, bundled better user handling. next step: deal with rooms