more polishing.. ready to merge.