Implemented @Data feature

resolves #9
Implemented val feature

resolves #1