The secret to building large apps is never build large apps. Break your applications into small pieces. Then, assemble those testable, bite-sized pieces into your big application.
Source code available @ githubpull requests are more than welcome ;-)