ported most of model for Beer's Law module, loads with require.js, instantiates without errors, but untested