add method parameter direction modifiers
implement attributes and separate namespace from class