this still needs to become a singleton (look in vsc.utils.pattern)