parse method now returns self to allow method chaining