create abstract middle man