added history considerations in move() and public constructor