modify for personal usage and fix tab&space indent error