make it more OO adds sink and source