Added maven support
Split client structure into different subclasses