Learning by design