Massive rewrite and refactoring; extended codebase.
Updated setup script
Updated documentation