use hasOwnProperty to detect option keys
reorder some requires
v0.3.1