copied from bitX