Changed Builder pattern to immutable classes