now using lombok for accessors and equals and hashcode and tostring