use this instead of self