pattern matching Eitehr type.
use Await.ready/result to block until a future is completed. It's better than using Thread.sleep() because blocking will disappear immediately after the future is completed.
Use promise to success/failure a future.
write in more DSL way
demo on how to construct high order functions.
rewrite the filter with the help of andThen.
composing predicates.
Use Function.chain/andThen to compose transformation pipeline.
move scattered scala file into packages.