refactor Has traits to type-classes
introduce user and remark in handling