this is working, but EM exports a private method, IV exports ned to be validated + cleaned up, FSM needs to be cleaned up