Remove unnecessary language extension
Refactor with free monad