Implementing logical connectors
Using "or" & "and" instead of comma and semicolon
Removing duplicated bolierplate code
Making Java6 compatible