Working Code

Improvements Pending