adding utility functions(incompleted)