make versions dynamic