strongly type attributes

**please review**
ok