Rename parent project.
Reorganize sample packages.
Add some interfaces and implementations to manage abstractions.