adding common tools abstraction concept