improve(auto-fill): use an interval instead of timeout