Phase 2

Phase 2: Adding Real-World Functionality