Added class to generate singletons. Added hardware checking functions.