Reimplement some optional methods using for comprehensions