move fish picker to be based on shared indexed picker; move singleton methods into subclasses to avoid issues with instance var collision