Rich D: factorized out to 24, Im bored so it must work