basic framework should be complete, just need to test