one bug to fix: use seperate task to read inputs with low priority