valid? should be in module