implemented variables; partially implemented pattern matching