TODO detect the input invalid