Initial implementation
Merge branch 'initial_implementation'