Much less code redundancy