separated the utils code and the common code