refactor validatable package