Adding non-null state variants, removing non-mutable implementation
classes