Use applicative in more intuitive style