abstracted the  method to work with anyone