imo its quite expressive and allows a nice upgrade path if you need to implement a more specific method.