Initial implementation with documentation and unit tests