One third of hw2 done kind of. Not sure if all of them implementation
is correct, but works for simple cases at least.