adding support for final and abstract modifiers