implement binary support