Can reduce the size of Main by including only the Child Interface, and not the entire Child. contract Child { uint i1; uint i2; uint i3; uint i4; uint i5; function f1() { i1=1; } function f2() { i2=2; } function f3() { i3=3; } function f4() { i4=4; } function f5() { i5=5; } } contract MainFactory { Child ch; function MainFactory() { ch = new Child(); } function test() { ch.f1(); ch.f2(); ch.f3(); ch.f4(); ch.f5(); } } This way: contract ChildInterface { function f1() {} function f2() {} function f3() {} function f4() {} function f5() {} } contract Main { ChildInterface ch; function Main(address child) { ch=ChildInterface(child); } function test() { ch.f1(); ch.f2(); ch.f3(); ch.f4(); ch.f5(); } }