First implementation

Port is not working yet