add aeson json parser to parse json data from web; use Applicative to replace Maybe monad inside operation