(refactor) Moved into multiple files.
(feat) Added SharedThun.