added "Xlint:unchecked" compiler args
split classes into indepenent files