Start abstracting workflow into a single interface