Lots of duplicated logic