allow use different types of arguments in any position

more readable methods calls
implements Case and Concat predicates