Abstract layer on top of SDL