Project restructuring for testability
Added contributing guide
Test updates