many changes in logic...