Basic framework complete, will add more features.