added generic executors and tests