added more methods, need a refactor asap