Why do you call this "dirty"? Only the first one should be necessary. The other two should inherit the first.