Moving GPU into it's own library