initial release

(will sync it with the o2.then npm module)