Initial Changes

Adding necessary support classes and working on implementation.