All functions starting with B should at least have first attempt functions written, broken/untested ones should be noted with todo(s)