can take arguements & minor refactoring