more generic move methods and test