less hard coding