broke subgradient learning before; fixed that; cleaned up models/inference