initial mcml c based version