abstract infrastructure