creating reusable functions