fix compilation errors; refactory binary operations