shared code. there is bad code now