use self in constructor for consistency