added random state for reproducability