add methods and attributes