Adding instancetype for better type checking