add some variable
rename primary->major, add required and hint
add form
add mixin