refactor
refactor user setting for clear usage
seperate tracker