implement serialVersionUID
refactored into four packages with updated Makefile