implemented String, some restructuring.