add binary reimpl