Restructured for better polymorphic extensibility, began DBSCAN implementation