copied in most of the method signatures with the help of some regular expressions