added lots of methods