Learning by Modeling