added validate, not actually using it though