why did you do all the methods virtual? calc_sigmoid should be static, right?