Fix a couple interface issues and add skeleton unit tests--still need to fill in the details everywhere