modified based off my needs