Add abstract pipe so that details are hidden from user