Moved options to case classes
Added return types to queries
Added JoinResult as a wrapper for joins
Added Zip
Small refactor of Result classes