Coding done, maybe little refactor needed