Historic commit for v1.0: complete rewrite using singleton pattern; processes all ratings; uses GUI for options