add back in functions stuff with wrappers to keep from firing if things needed don't exist.