k means implemented. should check with others if correct. no idea how to determine the best K...