add conditionals, pattern matching