ton of copy-paste code