experimental: use gapi