add dynamic positioning (shift + arrows to move, shift + s to save)