First arg is always self