Initial implementation
Add license