use level, add async. TODO home dir