add position_spec
add castling capability