Abstracting to start creating more generic tools