Initial implementation

Please use the oss as parent project and attach the license headers