Copied over updated files from module 3