added more useful methods for more flexibility