holy shit this is exactly what I was looking for