P73. remove case statement.
P73. add attr_writer and reimplemet spec.