some hard coding removed