First Draft

This is still a draft many functions are only placeholders, not
documented.