some refactoring - src/main src/test structure and consistency with
package and file name conventions
added another clustering implementation