z algorithm implemented. started adding unit tests. project structure is a little better, but still needs improvement (probably some folders may be dropped)