update unit tests + add raw implementation struct