refactored implementation

* Added nice pipe macro