functionally MVP, needs UI cleanup and options page