Add: File cache and brushed up the codes, closes #4