updated with a BUNCH of options