abstracting some stuff