Initial Commit with base cases and unit tests.