early version
 Merged