New tests, add and and or forms, partially fix the way that function calls work but it's still broken. I'll need to work on it further