is this functional programming? idk