BookActionDo: use constructor to eliminate redundant code

Closed #106.