First draft of substrate implementation
First [incomplete] draft of substrate model, still have to fix errors in Substrate Objective Function