i guess they really are functions