changed static init of singletons
changed static init of singletons in favor of simpler approach
added constructor for variable number of PCs
fixed ONE_TIME_SETUP to remove circular calling