Cleaned up a bit, also implemented expressions.