add new methods, needs some refactoring now :)