inline LineUpGlobal where possible to avoid global variable
fix #22 fix #24 create single module, remove LineUpGlobal and extract demo code