Add views and basic functionality; closes #1, closes #2, and closes #3