getting rid of extra function prototype
improvments