learning skeleton actual E and M step yet to be implemented
modularize forward_path and change evaluation code to use that