switching on args instead of ifs + helpers