Fix #15, fix #16, basically fix #12

adding much of experiment module infrastructure and estimator