chainable webGL api + data mapping eventually