First POC initial cimplementation and refactor.