moved some methods around, to better suit the classes