ADD: jms mostly implemented and tested