Added device.hpp which controls GL contexts