Refactor, genralize the language, remove hard coded scrooge logic as many as possible